首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas:转换为数字,在必要时创建NaNs

Pandas:转换为数字,在必要时创建NaNs
EN

Stack Overflow用户
提问于 2013-08-26 06:04:51
回答 2查看 93.4K关注 0票数 54

假设我在dataframe中有一列,其中包含一些数字和一些非数字

代码语言:javascript
复制
>> df['foo']
0       0.0
1     103.8
2     751.1
3       0.0
4       0.0
5         -
6         -
7       0.0
8         -
9       0.0
Name: foo, Length: 9, dtype: object

如何将此列转换为np.float,并将其他非浮点型数据转换为NaN

当我尝试的时候:

代码语言:javascript
复制
>> df['foo'].astype(np.float)

代码语言:javascript
复制
>> df['foo'].apply(np.float)

我得到了ValueError: could not convert string to float: -

EN

回答 2

Stack Overflow用户

发布于 2017-11-29 07:13:06

您可以简单地使用pd.to_numeric并将error设置为coerce,而不使用apply

代码语言:javascript
复制
df['foo'] = pd.to_numeric(df['foo'], errors='coerce')
票数 22
EN

Stack Overflow用户

发布于 2013-08-26 06:08:31

首先用None替换所有字符串值,将它们标记为缺少的值,然后将其转换为浮点型。

代码语言:javascript
复制
df['foo'][df['foo'] == '-'] = None
df['foo'] = df['foo'].astype(float)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18434208

复制
相关文章

相似问题

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