2016-09-02 4 views
2

私の質問に既に回答があった場合は、よろしくお願いします。私は解決策を見つけようとしましたが、データフレーム内のすべてのNaNに対してdropnaソリューションを見つけることができます。 私の質問は、私は6列と500行のデータフレームがあるということです。私は私のデータセットからそれらを削除することができるように、すべての値がNaNである特定の行にあるかどうかを確認する必要があります。行2、6 & 7以下の例では、COL1からCOL6にすべてのナンが含まれていますPython Pandas:行のすべての列の値がNaNであることを確認してください

Col1 Col2 Col3 Col4 Col5 Col6 
    12  25  02  78  88  90 
    Nan  Nan  Nan  Nan  Nan  Nan 
    Nan  35  03  11  65  53 
    Nan  Nan  Nan  Nan  22  21 
    Nan  15  93  111  165  153 
    Nan  Nan  Nan  Nan  Nan  Nan 
    Nan  Nan  Nan  Nan  Nan  Nan 
    141  121  Nan  Nan  Nan  Nan 

一番上の行だけの見出しや病棟での2列目からの私のデータの開始であることに注意してください。誰かがこのパズルを解く正しい方向に私を助けることができれば感謝します。

また、第2の質問は、4列または5列のデータがない行を削除したい場合は、すべての列のすべてのNanを削除した後に、最良の解決策となることです。

と最後の質問は、ほとんどのナンと行を削除した後、どのように残りの450の行にボックスプロットを作成することができますか?

すべての応答は高く評価されます。

よろしく、

答えて

3

私は私が私のデータセットからそれらをドロップすることができるように任意の特定の行のすべての値がNaNかどうかを確認する必要があります。 pd.DataFrame.dropna(how='all')はまったく同じものだ

:あなたの2番目の質問については

In [3]: df = pd.DataFrame({'a': [None, 1, None], 'b': [None, 1, 2]}) 

In [4]: df 
Out[4]: 
    a b 
0 NaN NaN 
1 1.0 1.0 
2 NaN 2.0 

In [5]: df.dropna(how='all') 
Out[5]: 
    a b 
1 1.0 1.0 
2 NaN 2.0 

pd.DataFrame.boxplotはそれを行います。 columnパラメータを使用して、必要な場合は列を指定できます。 the example in the docsも参照してください。

+0

こんにちは、 お返事ありがとうございます。実際には私は6列と450行を持っています。 – Baig

+0

@Baig Oh、そうだね - そのコメントを消した(とにかくそれはあまり重要ではなかった)。 –

+1

2番目の質問は、実際に4行または5列にデータがない行を削除する方法でした。したがって、最初と2番目の質問に取り組む別の方法は、 'df.dropna(thresh = 2)'を実行して、少なくとも2つの非NaN値を持っています –

関連する問題