Python df.loc过滤不';没有价值观就不能工作
当筛选器为Python df.loc过滤不';没有价值观就不能工作,python,python-2.7,pandas,Python,Python 2.7,Pandas,当筛选器为项目ID==无时,为什么此筛选不起作用?我还注意到是None而不是==None返回keyrerror: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'] ==
项目ID
==无时,为什么此筛选不起作用?我还注意到是None
而不是==None
返回keyrerror: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
或使用应用:
In [5]:
df.loc[df['Project ID'].apply(lambda x: x is None)]
Out[5]:
Project ID State Cost
1 None 3 1000
详细说明一下,它不起作用,因为pandas
使用np.nan
,并且:
print np.nan == np.nan # False
print np.nan == None # False
print np.isnan(np.nan) # True