求和 datetime64[ns] 列和 float64 列

Sum datetime64[ns] Column and float64 Column

我正在尝试对两列求和:一列是 float64 格式,它是秒,另一列是 datetime64[ns] 格式。它们看起来像:

 time                  | float
---------------------------------
 2020-07-28 14:53:10   | 5.0
 2021-08-30 15:28:52   | 68.0
 2019-04-25 14:55:36   | 49.0
 2020-03-24 09:19:45   | 8.0
 2021-02-10 07:44:26   | 6.0

我按如下方式求和:

df['time'] + df['float']

然后我收到了以下消息:

ufunc 'add' cannot use operands with types dtype('<M8[ns]') and dtype('float64')

我尝试将浮点列转换为时间日期,然后执行求和,但收到以下消息:

unsupported operand type(s) for +: 'Timestamp' and 'Timestamp'`

使用 pd.to_timedelta 将“float”列转换为 pd.Timedelta,然后 sum:

df["time"] = pd.to_datetime(df["time"])
df["float"] = pd.to_timedelta(df["float"], unit="D") #change units if needed

>>> df.sum(axis=1)
0   2020-08-02 14:53:10
1   2021-11-06 15:28:52
2   2019-06-13 14:55:36
3   2020-04-01 09:19:45
4   2021-02-16 07:44:26
dtype: datetime64[ns]

使用 pandas.Timedelta,根据需要更改您的单位。

df.float = df.float.apply(functools.partial(pd.Timedelta, unit='seconds'))