我有一个像这样的Pandas数据框:
col1 col2 col3 col4
0 NaN D NaN I
1 NaN NaN F J
2 NaN NaN NaN NaN
3 A E NaN NaN
4 NaN NaN G NaN
5 NaN NaN NaN K
6 B NaN NaN NaN
7 NaN NaN H NaN
8 NaN NaN NaN NaN
9 C NaN NaN NaN
我希望将行保留在至少有两个非空条目的位置:
col1 col2 col3 col4
0 NaN D NaN I
1 NaN NaN F J
3 A E NaN NaN
使用布尔索引选择所有非空列非常容易,但是如何将其概括为保持带有> = x个非空条目数的行?
以下是创建此数据框的代码:
import numpy as np
import pandas as pd
d = {'col1' : [np.nan, np.nan, np.nan, 'A', np.nan, np.nan, 'B', np.nan, np.nan, 'C'],
'col2' : ['D', np.nan, np.nan, 'E', np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
'col3' : [np.nan, 'F', np.nan, np.nan, 'G', np.nan, np.nan, 'H', np.nan, np.nan],
'col4' : ['I', 'J', np.nan, np.nan, np.nan, 'K', np.nan, np.nan, np.nan, np.nan]}
df = pd.DataFrame(d)
答案 0 :(得分:4)
选项中的各种好东西
In [20]: df.dropna(thresh=2)
Out[20]:
col1 col2 col3 col4
0 NaN D NaN I
1 NaN NaN F J
3 A E NaN NaN
这是一个等效的soln
df.loc[df.count(axis=1)>=2]