日期缺失数据的Pandas数据框选择行为异常

4

当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 64位,Pandas 0.18.0,Windows 10

1个回答

3

我认为这种行为很不寻常。

这是一个解决方案的权宜之计:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接