Python,Pandas:仅返回缺少值的行

时间:2015-05-25 23:03:24

标签: python pandas missing-data

在Python中使用Pandas时...

我正在使用包含一些缺失值的数据集,并且我想返回一个仅包含缺少数据的行的数据框。有没有一个很好的方法来做到这一点?

(我目前的方法是效率低下&#34;看看数据框中没有缺失值的索引是什么,然后从这些索引中生成一个df。&#34;)< / p>

7 个答案:

答案 0 :(得分:63)

您可以使用any axis=1检查每行至少一个True,然后使用boolean indexing进行过滤:

null_data = df[df.isnull().any(axis=1)]

答案 1 :(得分:1)

<a href="https://www.google.com" target="_blank">link</a>

这将为您提供至少一个缺失数据的总行数

答案 2 :(得分:1)

如果您只想查看包含NaN值的行,则可以执行以下操作:

data_frame[data_frame.iloc[:, insert column number here]=='NaN']

答案 3 :(得分:1)

你可以这样使用代码

sum(df.isnull().any(axis=1))

答案 4 :(得分:0)

类似于Meterk的答案,

null_data = df[np.logical_or.reduce(df.isnull(), axis=1)]

测试

n = 2
df = pd.DataFrame({'a':np.tile([0,1,2,3,4,np.nan],n),
                   'b':np.tile([0,1,2,3,np.nan,5],n)})

x = df[np.logical_or.reduce(df.isnull(),axis=1)]
y = df[df.isnull().any(axis=1)]
x.equals(y)

答案 5 :(得分:0)

我只是遇到了这个问题,我假设您想查看数据框的一部分,该部分由我使用的缺少值的行组成

aws_subnet.public.*.id[0]

答案 6 :(得分:-1)

如果您正在寻找一种更快的方法来查找数据框中缺少的行的总数,则可以使用以下方法:

sum(df.isnull()。values.any(axis = 1))