-1

我试图对两列求和:一列是格式 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' 不能使用类型为 dtype('<M8[ns]') 和 dtype('float64') 的操作数

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

+ 不支持的操作数类型:'Timestamp' 和 'Timestamp'`

4

2 回答 2

2

将“float”列转换为pd.Timedelta使用pd.to_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]
于 2021-11-12T16:21:45.723 回答
0

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

df.float = df.float.apply(functools.partial(pd.Timedelta, unit='seconds'))
于 2021-11-12T16:21:58.027 回答