说我有一个很大的DataFrame(> 10000行),其中有些行包含一个或多个null。如何从原始DataFrame中删除其一个或多个列中包含null的所有行,并将这些行放入另一个DataFrame中?
例如:
原始DataFrame:
data-selector="refusal_alt"
非空DataFrame:
a b c
1 "foo" 5 3
2 "bar" 9 1
3 NaN 5 4
4 "foo" NaN 1
包含DataFrame的空值:
a b c
1 "foo" 5 3
2 "bar" 9 1
答案 0 :(得分:2)
使用documentation检查缺失值:
print (df.isna())
#print (df.isnull())
a b c
1 False False False
2 False False False
3 True False False
4 False True False
并通过DataFrame.isna
测试每行至少True
:
mask = df.isna().any(axis=1)
#oldier pandas versions
mask = df.isnull().any(axis=1)
print (mask)
1 False
2 False
3 True
4 True
dtype: bool
通过DataFrame.any
-~
进行的最后过滤是用于反转布尔掩码:
df1 = df[~mask]
df2 = df[mask]
print (df1)
a b c
1 foo 5.0 3
2 bar 9.0 1
print (df2)
a b c
3 NaN 5.0 4
4 foo NaN 1