我在某些单元格中有一个缺少值的数据框。我想保留任何列中具有空值的行。这与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
答案 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)]
。