为什么当过滤器为 Project ID
== None 时此过滤不起作用?我还注意到 is None
而不是 == None
返回 KeyError: False
import pandas as pd
df = pd.DataFrame(data = [['Project1', 'CT', 800], [None, 3, 1000], ['Project3', 'CA', 20]], columns=['Project ID', 'State', 'Cost'])
print df.loc[df['Project ID'] == 'Project1'].values
print df.loc[df['Project ID'] == None].values
输出:
[['Project1' 'CT' 800L]]
[]
最佳答案
你必须为此使用isnull
:
In [3]:
df[df['Project ID'].isnull()]
Out[3]:
Project ID State Cost
1 None 3 1000
或者使用apply
:
In [5]:
df.loc[df['Project ID'].apply(lambda x: x is None)]
Out[5]:
Project ID State Cost
1 None 3 1000
关于python - df.loc 过滤不适用于 None 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31732415/