列の値がNaNの場合に行全体を削除する方法[終了]


8

列に関連するNaN値を含むすべての行を削除します。次のようなデータセットがあるとしましょう:

Age  Height  Weight  Gender
12    5'7     NaN     M
NaN   5'8     160     M
32    5'5     165     NaN
21    NaN     155     F
55    5'10    170     NaN

「Gender」にNaN値があるすべての行を削除したい。私が望む出力:

Age  Height  Weight Gender
12   5'7     NaN     M
NaN  5'8     160     M
21   NaN     155     F

前もって感謝します!


2
それがどのようなデータ構造であるかを本当に教えてください。
ポールチャイルズ

回答:


15

データセットが大きすぎない場合は、パンダを使用してデータをクリーンアップすることをお勧めします。したがって、最初に行う必要があります

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

すでにanacondaがインストールされている場合は、上記の手順をスキップできます。次に、IDE(jupyterなど)またはシェルを介して次のコマンドを入力します。

import pandas as pd
df = pd.read_csv("filename", dtype=str)
#or if excel file
#df = pd.read_excel("filename", dtype=str)

df = df[pd.notnull(df['Gender'])]

次に、結果をファイルに保存します

df.to_csv("newfile"); 

5

Python Dataframeで作業している場合は、これを試してください。

import pandas as pd
df = df[np.isfinite(df['Gender'])]

または、isfiniteの代わりにnotnullを使用できます。

import pandas as pd
df = df[pd.notnull(df['Gender'])]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.