在python中减去两个对象数据类型

时间:2018-01-23 11:10:00

标签: python pandas

我想减去两列以获取时间,但我的列是对象类型。

这是我的初始列dtypes:

Column1      object
Column2      object
EVS_START    object
Column3      object
time         object
dtype: object

我将EVS_START和时间更改为datetime64 [ns],如下所示:

df['time'] = pd.to_datetime(df['time'])
df['EVS_START'] = pd.to_datetime(df['EVS_START'])

我再次使用df.dtypes进行了检查,然后又进行了更改:

Column1      object
Column2      object
EVS_START    datetime64[ns]
Column3      object
time         datetime64[ns]
dtype: object

但是当我减去它们时,我得到TypeError: ufunc subtract cannot use operands with types dtype('<M8[ns]') and dtype('O')

df['Time_duration'] = df['time'] - df['EVS_START']

我做错了什么?我用df做了类似的事情,它工作得很好 我正在使用python 2.x

1 个答案:

答案 0 :(得分:0)

此处有一个类似的问题,讨论datetime64[ns]<M8[ns]之间的不兼容性:

Difference between data type 'datetime64[ns]' and '<M8[ns]'?

提出的一个建议是同时更新Pandas和Numpy,以便它们使用相同的日期时间表示。你能试试吗?