首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pandas处理列中的缺失值

问使用pandas处理列中的缺失值
EN

Stack Overflow用户
提问于 2019-01-02 19:06:05
回答 3查看 744关注 0票数 2

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

所以当我使用代码的时候-

代码语言:javascript
复制
data.isnull.values.any()

或

代码语言:javascript
复制
data["horsepower"].isnull.values.any()

这两个代码都返回False,因为这些代码适用于NaN值或空值。

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

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-02 20:29:07

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

1)将?转换为NaN:

代码语言:javascript
复制
data.replace('?',np.NaN)

2)查找空值:

代码语言:javascript
复制
pd.isna(data['horsepower'])

它将返回带有一系列True/False的dataframe。

票数 1
EN

Stack Overflow用户

发布于 2019-01-02 19:08:28

在检查NaN之前使用replace:

代码语言:javascript
复制
data["horsepower"].replace('?',np.nan).isnull().values.any()

如果DataFrame是由read_csv创建的,则添加参数na_values以将?转换为NaNs:

代码语言:javascript
复制
data = pd.read_csv(path, na_values=["?"])
data["horsepower"].isnull().values.any()
票数 2
EN

Stack Overflow用户

发布于 2019-01-02 19:18:10

您可以将na_values定义为?,也可以使用以下命令:

代码语言:javascript
复制
df.replace(r'[\W]',np.nan,regex=True)

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54005192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档