使用熊猫处理列中的缺失值

时间:2019-01-02 11:06:05

标签: python pandas missing-data

我正在使用自动MPG数据集,该数据集在“马力”列/属性中以“?”的形式包含缺失值。字符。

因此,当我使用代码时-

data.isnull.values.any()

OR

data["horsepower"].isnull.values.any()

由于这两个代码适用于NaN值或空白值,因此它们都返回“ False”。

如何找到包含特殊字符(在我的情况下恰好是'?)的缺失值?而不是传统的NaN值。

谢谢!

3 个答案:

答案 0 :(得分:2)

在检查NaN之前使用replace

data["horsepower"].replace('?',np.nan).isnull().values.any()

如果read_csv创建了DataFrame,请添加参数na_values,以将?转换为NaN s:

data = pd.read_csv(path, na_values=["?"])
data["horsepower"].isnull().values.any()

答案 1 :(得分:2)

您可以将定义为na_values或使用以下内容:

?

df.replace(r'[\W]',np.nan,regex=True) 查找不是字母,数字或下划线字符的任何字符。

答案 2 :(得分:1)

您需要先将?转换为NaN。 之后,您可以在其中查找空值。

1)将?转换为NaN

data.replace('?',np.NaN)

2)查找空值:

pd.isna(data['horsepower'])

它将返回一系列True/False的数据帧。