当Pandas DataFrame中缺少数据时,索引无法正常工作。
import pandas as pd
from datetime import datetime
df = pd.DataFrame({'a' : [datetime(2011, 1, 1), datetime(2013, 1, 1)],
'b' : [datetime(2010, 1, 1), datetime(2014, 1, 1)]})
df > datetime(2012, 1, 1)
按预期工作:
a b
0 False False
1 True True
但如果缺少值
none_df = pd.DataFrame({'a' : [datetime(2011, 1, 1), datetime(2013, 1, 1)],
'b' : [datetime(2010, 1, 1), None]})
none_df > datetime(2012, 1, 1)
选择返回所有True
a b
0 True True
1 True True
我做错了吗?这是期望的行为吗?
Python 3.5 64bit,Pandas 0.18.0,Windows 10
答案 0 :(得分:3)
我同意这种行为很不寻常。
这是一种解决方法:
>>> df.apply(lambda col: col > datetime(2012, 1, 1))
a b
0 False False
1 True False