使用 pandas 处理列中的缺失值

Dealing with missing value in a column using pandas

我正在使用 Auto MPG 数据集,它包含 column/attribute horsepower? 个字符形式的缺失值。

因此当我使用代码时-

data.isnull.values.any()

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

它们都是 return False 因为这些代码适用于 NaN 值或空白值。

如何找到包含特殊字符的缺失值,在我的例子中恰好是 ? 而不是传统的 NaN 值。

谢谢!

在检查 NaNs 之前使用 replace:

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

如果 DataFrame 是由 read_csv add parameter na_values 创建的,用于将 ? 转换为 NaNs:

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

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

df.replace(r'[\W]',np.nan,regex=True)

\W 查找任何不是字母、数字或下划线字符的字符。

您需要先将 ? 转换为 NaN。 之后你可以去寻找空值。

1) 将 ? 转换为 NaN :

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

2) 查找空值:

pd.isna(data['horsepower'])

它将 return 具有 True/False.

系列的数据帧