如何替換日期時間格式的 pandas 列中的特定時間?我需要23:52:00用23:59:59in替換所有時間df.end
data = [['site a', '2021-03-05 23:52:00'],
['site a', '2021-03-06 12:00:00'],
['site b', '2021-04-08 23:00:00'],
['site c', '2021-04-09 23:52:00']]
df = pd.DataFrame(data, columns = ['id', 'end'])
df['end'] = pd.to_datetime(df['end'], infer_datetime_format=True)
使用這個 where 陳述句,任何時候都不會改變。這是由于此宣告:df['end'].dt.time == '23:52:00'
np.where(df['end'].dt.time == '23:52:00', (df['end'].dt.normalize() pd.Timedelta('23:59:59')), df['end'])
Out[74]: array(['2021-03-05T23:52:00.000000000', '2021-03-06T12:00:00.000000000',
'2021-04-08T23:00:00.000000000', '2021-04-09T23:52:00.000000000'],
dtype='datetime64[ns]')
uj5u.com熱心網友回復:
如果您更喜歡使用datetime物件進行比較,您可以這樣做(無需使用np.where):
mask = df['end'].dt.time == pd.to_datetime('23:52:00').time()
df.loc[mask, 'end'] = df['end'].dt.normalize() pd.Timedelta('23:59:59')
uj5u.com熱心網友回復:
您正在比較錯誤的型別,將時間轉換為刺痛:
mask = df['end'].dt.time.astype(str) == '23:52:00'
要替換找到的值:
import datetime
df.loc[mask, 'end'] = df[mask]['end'] datetime.timedelta(minutes=7)
用您想要的差異替換“分鐘= 7”。
uj5u.com熱心網友回復:
您必須使用日期時間而不是字串。pandas.to_datetime('23:52:00')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442400.html
上一篇:創建指標等于一的日期范圍
