在评估所有列之后删除pandas数据框中的行

时间:2014-12-21 21:21:25

标签: python pandas dataframe rowdeleting

我有一个非常大的pandas DataFrame(> 1亿行,&> 1000s列)。每行都有一个唯一的标签作为索引,对于大多数行,只有一列包含值。我想通过删除那些只有一列具有值的行来创建一个新的DataFrame,并保持那些具有两列以上的行具有值。

1 个答案:

答案 0 :(得分:1)

您可以使用dropna删除它们:

In [3]:
#sample df
df = pd.DataFrame({'a':[0,NaN, 2,3,4], 'b':[0,NaN, 2,3,NaN], 'c':arange(5)})
df

Out[3]:
    a   b  c
0   0   0  0
1 NaN NaN  1
2   2   2  2
3   3   3  3
4   4 NaN  4
In [5]:
# drop just the rows which have 2 or more NaN values
df.dropna(thresh=2, axis=0)
Out[5]:
   a   b  c
0  0   0  0
2  2   2  2
3  3   3  3
4  4 NaN  4

您传递参数thresh=2以指定您需要至少2个非NA值,axis=0将指定应按行应用条件。