我刚刚从pandas 0.16.2更新到0.17.1,现在在执行0.16.2中正常工作的现有代码时出现此错误
TypeError: ufunc substract cannot use operands with types dtype('<M8[ns]') and dtype('O')
我试图在给定特定条件的情况下在数据帧的子集上减去两个datetime64 cols。仅当子集为空时才会出现错误。在0.16.2中,下面的示例代码返回一个带有NaN值的新列D,但是在0.17.1中我得到了上述错误。
有什么想法吗?我需要让这段代码再次运行,并希望不要降级回0.16.2
df = pd.DataFrame({'A': [1,2], 'B': ['2016-02-11 05:15:34', '2016-02-11 04:04:54'], 'C': ['2016-02-11 14:08:02', '2016-02-12 01:58:51']})
df['B'] = pd.to_datetime(df['B'])
df['C'] = pd.to_datetime(df['C'])
ix = df['A']==3
df.loc[ix, 'D'] = (df[ix]['C'] - df[ix]['B']) / np.timedelta64(1, 's')
df在0.16.2中返回:
A B C D
0 1 2016-02-11 05:15:34 2016-02-11 14:08:02 NaN
1 2 2016-02-11 04:04:54 2016-02-12 01:58:51 NaN