我想减去两列以获取时间,但我的列是对象类型。
这是我的初始列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
答案 0 :(得分:0)
此处有一个类似的问题,讨论datetime64[ns]
和<M8[ns]
之间的不兼容性:
Difference between data type 'datetime64[ns]' and '<M8[ns]'?
提出的一个建议是同时更新Pandas和Numpy,以便它们使用相同的日期时间表示。你能试试吗?