Python 转换/使用timedelta';时间到了
我有一个包含两列的数据帧:1列timedelta“Time”,1列datetime“datetime” 我的timedelta列只包含/显示正常的固定时间,它的时间从不超过24小时。它没有被用作“timedetla”,只是“time”。 这就是熊猫从我的数据库中获取数据的方式 我想要一个新的列“NewDateTime”,其中日期来自datetime,时间来自deltatime 所以我有这个:Python 转换/使用timedelta';时间到了,python,pandas,datetime,Python,Pandas,Datetime,我有一个包含两列的数据帧:1列timedelta“Time”,1列datetime“datetime” 我的timedelta列只包含/显示正常的固定时间,它的时间从不超过24小时。它没有被用作“timedetla”,只是“time”。 这就是熊猫从我的数据库中获取数据的方式 我想要一个新的列“NewDateTime”,其中日期来自datetime,时间来自deltatime 所以我有这个: Time DateTime 1 09:01:00
Time DateTime
1 09:01:00 2018-01-01 10:10:10
2 21:43:00 2018-01-01 11:11:11
3 03:20:00 2018-01-01 12:12:12
我想要这个:
Time DateTime NewDateTime
1 09:01:00 2018-01-01 10:10:10 2018-01-01 09:01:00
2 21:43:00 2018-01-01 11:11:11 2018-01-01 21:43:00
3 03:20:00 2018-01-01 12:12:12 2018-01-01 03:20:00
起初,我尝试将DateTime列的小时、分钟和秒设置为0。
然后我计划将timedelta添加到datetime
但当我尝试这样做时:
df['NewDateTime']=df['DateTime'].dt.replace(小时=0,分钟=0,秒=0)
我得到的AttributeError:“DatetimeProperties”对象没有属性“replace”
用于删除时间:
df['NewDateTime'] = df['DateTime'].dt.floor('D') + pd.to_timedelta(df['Time'])
#if necesary convert times to strings
#df['NewDateTime'] = df['DateTime'].dt.floor('D') + pd.to_timedelta(df['Time'].astype(str))
print (df)
Time DateTime NewDateTime
1 09:01:00 2018-01-01 10:10:10 2018-01-01 09:01:00
2 21:43:00 2018-01-01 11:11:11 2018-01-01 21:43:00
3 03:20:00 2018-01-01 12:12:12 2018-01-01 03:20:00
在61秒内,你给了我一个有效的答案。太不可思议了!这不是你第一次帮助我。我的'Time'列已经是一个timedelta,所以我只使用
+df['Time']
测试了您的解决方案,而且效果非常好。非常感谢。