我正在使用自动MPG数据集,该数据集在“马力”列/属性中以“?”的形式包含缺失值。字符。
因此,当我使用代码时-
data.isnull.values.any()
OR
data["horsepower"].isnull.values.any()
由于这两个代码适用于NaN值或空白值,因此它们都返回“ False”。
如何找到包含特殊字符(在我的情况下恰好是'?)的缺失值?而不是传统的NaN值。
谢谢!
答案 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
的数据帧。