如果列中的值为 NaN,如何删除整行

数据挖掘 机器学习 Python 数据清理 数据
2021-09-22 10:06:24

我想删除包含与列有关的 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

我想删除“性别”具有 NaN 值的所有行。我想要的输出:

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

提前致谢!

2个回答

好吧,如果数据集不是太大,我建议使用 pandas 来清理数据。所以你需要先做

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

如果您已经安装了 anaconda,则可以跳过上述步骤。接下来,您可以通过 IDE(如 jupyter)或通过 shell 键入以下命令

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"); 

如果您正在使用 Python Dataframe,请试试这个。

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

或者您可以使用 notnull 代替 isfinite。

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