35

列3以降の要素がすべてNaNであるすべての行を削除する必要があります

df = DataFrame(np.random.randn(6, 5), index=['a', 'c', 'e', 'f', 'g','h'], columns=['one', 'two', 'three', 'four', 'five'])

df2 = df.reindex(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
df2.ix[1][0] = 111
df2.ix[1][1] = 222

上記の例では、最終的なデータフレームには行「b」と「c」がありません。

この場合の使い方df.dropna()は?

4

1 に答える 1

76

dropna引数subsethow:を使用して呼び出すことができます

df2.dropna(subset=['three', 'four', 'five'], how='all')

名前が示すように:

  • how='all'デフォルトではなく、行内の(のsubset)すべての列を削除する必要があります。NaN'any'
  • subsetを検査する列NaNです。

@PaulHが指摘しているように、次のように一般化して最後の列を削除できますk

subset=df2.columns[k:]

実際、必要に応じて、さらに複雑なことを行うこともできます。

subset=filter(lambda x: len(x) > 3, df2.columns)
于 2013-02-20T23:58:41.307 に答える