我有一只熊猫系列:
2013-09-30 None
2013-10-31 None
2013-11-30 1.47701e+06
2013-12-31 1.47701e+06
2014-01-31 1.47701e+06
Freq: M, Name: test_series, dtype: object
如果我这样做:
pd.notnull(test_series) & np.sign(test_series) == 1
为什么我会收到错误:
*** TypeError: unorderable types: NoneType() < int()
为什么当系列元素为无时,第一次检查notnull
短曲线并且第二次检查完全没有完成?
答案 0 :(得分:2)
我认为不是,因为&
,|
适用于booelan Series
。
因此它将第一个条件中的元素一个mask
与运算符mask
的另一个&
组合在一起。
#convert to numeric, if not possible get NaN
test_series = pd.to_numeric(test_series, errors='coerce')
mask1 = pd.notnull(test_series)
mask2 = np.sign(test_series) == 1
print (mask1)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool
print (mask2)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool
print (mask1 & mask2)
2013-09-30 False
2013-10-31 False
2013-11-30 True
2013-12-31 True
2014-01-31 True
Name: test_series, dtype: bool