Python 返回无值的数据帧

Python 返回无值的数据帧,python,pandas,indexing,multiple-columns,nan,Python,Pandas,Indexing,Multiple Columns,Nan,我从GET返回了一个角色的数据帧,这样他们就活了,并且预测会死,但前提是他们有一些房子的名字。(重要人物)。我原以为它会跳过NaN的,但它也会退回。我附上了输出的截图。请帮忙 PS我没有附加任何扰流器,所以你可以继续 import pandas df=pandas.read_csv('character-predictions.csv') a=df[((df['actual']==1) & (df['pred']==0)) & (df['house'] !=None)] b=a[

我从GET返回了一个角色的数据帧,这样他们就活了,并且预测会死,但前提是他们有一些房子的名字。(重要人物)。我原以为它会跳过NaN的,但它也会退回。我附上了输出的截图。请帮忙

PS我没有附加任何扰流器,所以你可以继续

import pandas
df=pandas.read_csv('character-predictions.csv')
a=df[((df['actual']==1) & (df['pred']==0)) & (df['house'] !=None)]
b=a[['name', 'house']]

选择列时需要使用:

b = df.ix[((df['actual']==1) & (df['pred']==0)) & (df['house'].notnull()), ['name', 'house']]
样本:

df = pd.DataFrame({'house':[None,'a','b'],
                   'pred':[0,0,5],
                   'actual':[1,1,5],
                   'name':['J','B','C']})

print (df)
   actual house name  pred
0       1  None    J     0
1       1     a    B     0
2       5     b    C     5

b = df.ix[((df['actual']==1) & (df['pred']==0)) & (df['house'].notnull()), ['name', 'house']]
print (b)
  name house
1    B     a
您还可以检查:

警告

必须注意的是,在python(和numpy)中,nan并不相等,但没有一个是相等的。请注意,Pandas/numpy使用np.nan!=np.nan,并且对待任何人都不像np.nan

因此,与上面相比,标量相等比较与None/np.nan比较并不能提供有用的信息


在比较中不能使用
np.nan
np.nan==np.nan
返回
False
。此外,您正在尝试比较
np.nan!=无
。即使是天真的解释也会告诉你这是真的@耶斯雷尔下面的回答可以满足您的需要。@piRSquared-谢谢您的解释。@piRSquared谢谢,我不知道“nan”不能解释为“none”,从逻辑上讲,它的感觉是一样的
In [11]: None == None
Out[11]: True

In [12]: np.nan == np.nan
Out[12]: False
In [13]: df2['one'] == np.nan
Out[13]: 
a    False
b    False
c    False
d    False
e    False
f    False
g    False
h    False
Name: one, dtype: bool