python - 返回无值的数据框

标签 python pandas indexing multiple-columns nan

我从 GOT 返回一个字符数据框,这样他们还活着并预测会死,但前提是他们有一些姓氏。 (重要的人)。我原以为它会跳过 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']]

enter image description here

最佳答案

你需要notnullix用于选择列:

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

您还可以检查pandas documentation :

警告

One has to be mindful that in python (and numpy), the nan's don’t compare equal, but None's do. Note that Pandas/numpy uses the fact that np.nan != np.nan, and treats None like np.nan.

In [11]: None == None
Out[11]: True

In [12]: np.nan == np.nan
Out[12]: False

So as compared to above, a scalar equality comparison versus a None/np.nan doesn’t provide useful information.

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

关于python - 返回无值的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39762576/

相关文章:

python - Pandas:给定不均匀空间的索引列表对数据帧进行重新采样

arrays - 如何在 R 中提取 1x1 数组切片作为矩阵?

python - matplotlib 如何知道要在此代码中显示什么?

python - 为什么有些库只编写私有(private)类函数,然后分配一个公共(public)变量来公开它们?

python - Mapreduce在Python中的词频

mysql - 如何在 MySQL 中创建带重音的索引

MySQL 没有使用可能的索引 - 为什么?

javascript - 单击 iframe 中的元素 - Selenium Python

python-3.x - 查找具有两列以上 groupby 的 Pandas 中分类值的平均值

python - pandas 如何使用 Series 对象对数据框进行切片?