2016-04-10 10 views
-3

私は入力データセットを.csv形式で持っています。これはPythonで入力しようとしていて、データ解析を行います。サンプル形式は次のとおりです。NA値をフィルタリングして新しいDataFrameに追加する方法

col1 col2 col3 col4 col5 
1  0  0  1  NA 
2  3  5  1  NA 
1  1  4  6  NA 
7  8  9  1  1 
12  13  0  34  5 
4  5  6  1  2 

ここに表示される列5にはNA値があります。 NA値を持つすべての行をこのデータフレームから削除し、新しいデータフレームにコピーして、結果のデータフレームが次のようになるように、このNA値のみをフィルタリングする必要があります。

NA値を持つデータフレーム:

NA値なし
col1 col2 col3 col4 col5 
    1  0  0  1  NA 
    2  3  5  1  NA 
    1  1  4  6  NA 

DATAFRAME:

col1 col2 col3 col4 col5 
    7  8  9  1  1 
    12  13  0  34  5 
    4  5  6  1  2 

が、私は私のさらなる分析に使用される、上記のように2つのデータフレームを、取得する必要があります。私はこれらのメソッドをプログラム的に実装するためにpython - pandasコードを探しています。誰かが私にこれを助けることができますか?

答えて

0

それを読んだ後、あなたのCOL5は本物NaNではなく、文字列NAが含まれている、あなたは、単に彼らがdfから選択する場合はnullているかどうかにかかわらず使用できると仮定すると:

>>> key = df["col5"].isnull() 
>>> df_NA = df.loc[key] 
>>> df_notNA = df.loc[~key] 
>>> df_NA 
    col1 col2 col3 col4 col5 
0  1  0  0  1 NaN 
1  2  3  5  1 NaN 
2  1  1  4  6 NaN 
>>> df_notNA 
    col1 col2 col3 col4 col5 
3  7  8  9  1 1.0 
4 12 13  0 34 5.0 
5  4  5  6  1 2.0 

また、あなたが使用することができます行き過ぎここにはなく、単に2よりも考慮すべき多くの例がある場合にうまく動作かもしれませんgroupby、:

>>> dfs = dict(list(df.groupby(df["col5"].isnull()))) 
>>> dfs[False] 
    col1 col2 col3 col4 col5 
3  7  8  9  1 1.0 
4 12 13  0 34 5.0 
5  4  5  6  1 2.0 
>>> dfs[True] 
    col1 col2 col3 col4 col5 
0  1  0  0  1 NaN 
1  2  3  5  1 NaN 
2  1  1  4  6 NaN 
+0

どうもありがとうございました。これが私が探しているものです。出来た。また、私は画像のアップロードに関するあなたの点を指摘し、今後の投稿に留意しています。再度、感謝します。 – SRS

+0

ここでNanに対していくつかの値が更新されました。今度は、新しく更新されたCol5値を以前と同じ順序で配置する必要があります。例:NaNの値が以下の場合: – SRS

+0

@Srinath:新しい質問がある場合は、新しい質問をしてください。古い質問に対する回答のコメントには何も加えないでください。 – DSM

関連する問題