Pandas删除没有NAs的行/使用NA保留行

时间:2018-04-08 20:35:44

标签: python pandas indexing

我在某些单元格中有一个缺少值的数据框。我想保留任何列中具有空值的行。这与pandas.DataFrame.dropna()相反。

import pandas as pd
import numpy as np

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

   a    b
0  1  NaN
1  2  4.0

期望的结果:

   a    b
1  2  4.0

我想用方法链式做这件事,所以这样的事情是理想的:

df.loc[lambda x: ...]
df.keepna(how='any') # keepna() doesn't exist

1 个答案:

答案 0 :(得分:1)

您可以使用df.isnull().any(1)创建一个布尔过滤器(如果行有缺失值):

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

df[df.isnull().any(1)]
#   a   b
#0  1 NaN

或者另一种方式:df[~df.notnull().all(1)]

相关问题