求和 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'))
我正在尝试对两列求和:一列是 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'))