首页 > 解决方案 > 为什么我不能添加或减去两个日期时间?

问题描述

我在另一列中有一个带有时间和毫秒的df,如下所示:

  Time    ms
0 14:11:52  0
1 4:11:52   250
1 4:11:52   500
1 4:11:52   750

我想像这样将毫秒添加到时间:

 Time           
0 14:11:52  
1 4:11:52:250
1 4:11:52:500
1 4:11:52:750

我尝试将两者都转换为 datetime[ns] 和 [D] 但出现以下错误:cannot add DatetimeArray and DatetimeArrayt

df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S')
df['ms'] =  pd.to_datetime(df['ms'], format='%f')

df['Time'] = df['Time'] + df['ms']

我认为通过使用时间增量可以实现我想要的,但是有没有一种更简洁的方法可以将一个日期列与另一个日期列相加?

标签: pythonpandas

解决方案


IIUC 2to_timedelta

pd.to_timedelta(df.Time)+pd.to_timedelta(df.ms,unit='ms')
Out[72]: 
0          14:11:52
1   04:11:52.250000
1   04:11:52.500000
1   04:11:52.750000
dtype: timedelta64[ns]
df['Time']=pd.to_timedelta(df.Time)+pd.to_timedelta(df.ms,unit='ms')

推荐阅读