1

非常に大きな pandas DataFrame (1 億行以上、1000 列以上) があります。各行にはインデックスとして一意のラベルがあり、ほとんどの行では、1 つの列だけに値が含まれています。列の 1 つだけに値がある行を削除し、2 つ以上の列に値がある行を保持して、新しい DataFrame を作成したいと考えています。

4

1 に答える 1

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

paramsthresh=2を渡して、少なくとも 2 つの非 NA 値が必要であるaxis=0ことを指定し、条件を行ごとに適用する必要があることを指定します。

于 2014-12-21T21:50:53.970 に答える