Pandas数据框的日期缺少数据选择奇怪的行为

时间:2016-03-30 19:01:13

标签: pandas dataframe

当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

1 个答案:

答案 0 :(得分:3)

我同意这种行为很不寻常。

这是一种解决方法:

>>> df.apply(lambda col: col > datetime(2012, 1, 1))
       a      b
0  False  False
1   True  False