我正在嘗試將 1 小時的時間增量添加到我的資料幀的一個子集。我df['2022-06-01 02:00:00':'2022-06-01 04:00:00']過去常常將它切片并添加 pd.Timedelta(hours=1),但出現錯誤。
我只想在“2022-06-01 02:00:00”:“2022-06-01 04:00:00”上添加時間增量。我怎樣才能做到這一點?解決方案可以是作為索引的日期時間或作為列。
這是資料框中的日期時間:
2022-06-01 00:30:00,
2022-06-01 01:00:00,
2022-06-01 01:30:00,
2022-06-01 02:00:00,
2022-06-01 02:30:00,
2022-06-01 03:00:00,
2022-06-01 03:30:00,
2022-06-01 04:00:00,
2022-06-01 04:30:00,
2022-06-01 05:00:00,
2022-06-01 05:30:00,
2022-06-01 06:00:00,
2022-11-16 06:30:00,
2022-11-16 07:00:00,
2022-11-16 07:30:00,
2022-11-16 08:00:00
uj5u.com熱心網友回復:
解決方案DatetimeIndex:
您可以通過以下方式創建掩碼并重命名索引值Index.where:
mask = (df.index >= '2022-06-01 02:00:00') & (df.index <= '2022-06-01 04:00:00')
df.index = df.index.where(~mask, df.index pd.Timedelta(hours=1))
或者獲取索引并按DataFrame.rename字典使用:
i = df['2022-06-01 02:00:00':'2022-06-01 04:00:00'].index
df = df.rename(dict(zip(i, i pd.Timedelta(hours=1))))
date專欄解決方案:
用于Series.between布爾掩碼和DataFrame.loc設定新值:
mask = df['date'].between('2022-06-01 02:00:00','2022-06-01 04:00:00')
df.loc[mask, 'date'] = pd.Timedelta(hours=1)
或者Series.mask:
df['date'] = df['date'].mask(mask, df['date'] pd.Timedelta(hours=1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/534941.html
標籤:Python熊猫约会时间
上一篇:如何在pandas中連續鏈接`dropna()`和`to_datetime()`,考慮`SettingWithCopyWarning`?
