使用 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 值。
谢谢!
在检查 NaN
s 之前使用 replace
:
data["horsepower"].replace('?',np.nan).isnull().values.any()
如果 DataFrame
是由 read_csv
add parameter na_values
创建的,用于将 ?
转换为 NaN
s:
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
.
系列的数据帧
我正在使用 Auto MPG 数据集,它包含 column/attribute horsepower
中 ?
个字符形式的缺失值。
因此当我使用代码时-
data.isnull.values.any()
或
data["horsepower"].isnull.values.any()
它们都是 return False
因为这些代码适用于 NaN 值或空白值。
如何找到包含特殊字符的缺失值,在我的例子中恰好是 ?
而不是传统的 NaN 值。
谢谢!
在检查 NaN
s 之前使用 replace
:
data["horsepower"].replace('?',np.nan).isnull().values.any()
如果 DataFrame
是由 read_csv
add parameter na_values
创建的,用于将 ?
转换为 NaN
s:
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
.