首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >熊猫".convert_objects(convert_numeric=True)“已弃用

熊猫".convert_objects(convert_numeric=True)“已弃用
EN

Stack Overflow用户
提问于 2015-10-14 21:20:17
回答 5查看 26.7K关注 0票数 29

我在我的代码中有这一行,它将我的数据转换为数字...

代码语言:javascript
复制
data["S1Q2I"] = data["S1Q2I"].convert_objects(convert_numeric=True)

事情是这样的,现在新的pandas版本(0.17.0)说这个函数被弃用了。这是错误:

代码语言:javascript
复制
FutureWarning: convert_objects is deprecated.  
Use the data-type specific converters pd.to_datetime, 
pd.to_timedelta and pd.to_numeric. 
data["S3BD5Q2A"] = data["S3BD5Q2A"].convert_objects(convert_numeric=True)

所以,我去了新的文档,我找不到任何关于如何使用新函数来转换我的数据的示例...

它只说了这个:

"DataFrame.convert_objects已被弃用,取而代之的是特定类型的函数pd.to_datetime、pd.to_timestamp和pd.to_numeric (0.17.0中的新函数)(GH11133)。“

任何帮助都会很好!

EN

回答 5

Stack Overflow用户

发布于 2016-01-10 01:09:52

正如@EvanWright在评论中所解释的那样,

代码语言:javascript
复制
data['S1Q2I'] = pd.to_numeric(data['S1Q2I'])

是现在转换类型的首选方式。有关更改的详细说明,请参阅github PR GH11133

票数 19
EN

Stack Overflow用户

发布于 2016-10-02 06:25:39

您可以使用apply as done here实现替换。下面是一个例子:

代码语言:javascript
复制
>>> import pandas as pd
>>> a = pd.DataFrame([{"letter":"a", "number":"1"},{"letter":"b", "number":"2"}])
>>> a.dtypes
letter    object
number    object
dtype: object
>>> b = a.apply(pd.to_numeric, errors="ignore")
>>> b.dtypes
letter    object
number     int64
dtype: object
>>> 

但它在两个方面很糟糕:

  1. ,你必须使用apply,而不是一个非原生数据帧方法,
  2. ,你必须拷贝到另一个数据帧--不能就地完成。关于“大数据”的使用就这么多了。

我真的不喜欢熊猫的发展方向。我不经常使用R data.table,但到目前为止它似乎更好。

我认为具有原生、就地类型转换的数据表对于一个具有竞争力的数据分析框架来说是非常基本的。

票数 9
EN

Stack Overflow用户

发布于 2017-02-05 08:31:12

这取决于Pandas的哪个版本......如果您使用的是Pandas的0.18.0版本,则此类型将正常工作........

代码语言:javascript
复制
df['col name'] = df['col name'].apply(pd.to_numeric, errors='coerce') 

另一个版本........

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

https://stackoverflow.com/questions/33126477

复制
相关文章

相似问题

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