为什么Pandas Series.subtract方法与减法运算符

时间:2016-09-11 01:36:03

标签: python pandas

毫无疑问这是一个边缘情况,看起来减法方法和运算符对dtype float的行为相同,但对于dtype datetime64[ns]则不行(见下文)。这是一个错误还是故意行为?

import pandas as pd

s1 = pd.Series(dtype='datetime64[ns]')
s2 = pd.Series(dtype='datetime64[ns]')

s3 = pd.Series(dtype='float')
s4 = pd.Series(dtype='float')

减法运算符产生:

s1 - s2
TypeError: ufunc subtract cannot use operands with types dtype('<M8[ns]') and dtype('O')

s3 - s4
Series([], dtype: float64)

而减法方法产生:

s1.subtract(s2)
Series([], dtype: timedelta64[ns])

s3.subtract(s4)
Series([], dtype: float64)

0 个答案:

没有答案