在 Azure 机器学习工作室中使用 Pandas to_numeric()

数据挖掘 Python 熊猫 天蓝色毫升
2022-03-09 06:25:29

我面临 Azure 机器学习工作室无法to_numeric在 pandas 中找到该方法的问题。

在 AMLS 中阅读 .csv 后,我尝试在 python 脚本中处理它。给我一个错误的行是:

dataframe1['Monthly Debt'] = pd.to_numeric(dataframe1['Monthly Debt'])

pd 当然是熊猫,dataframe1 是我的工作数据框。抛出的错误是:

AttributeError: 'module' object has no attribute 'to_numeric'

当然,一切都适用于我的本地 python。你知道AMLS可能在说什么吗?

2个回答

Pandas v0.17.0 的新功能

DataFrame.convert_objects已被弃用,取而代之的是特定类型的函数pd.to_datetimepd.to_timestamp以及 pd.to_numeric0.17.0 中的新功能)(GH11133)。

因此,对于 < 0.17.0 的 Pandas 版本,您可以并且应该使用:df.convert_objects(convert_numeric=True)

演示:

In [213]: x = pd.DataFrame({'a':['11', 'aaa', '0', np.nan, '123']})

In [214]: x
Out[214]:
     a
0   11
1  aaa
2    0
3  NaN
4  123

In [215]: x.dtypes
Out[215]:
a    object
dtype: object

In [216]: x = x.convert_objects(convert_numeric=True)

In [217]: x
Out[217]:
       a
0   11.0
1    NaN
2    0.0
3    NaN
4  123.0

In [218]: x.dtypes
Out[218]:
a    float64
dtype: object

好的,这是 Azure 机器学习工作室的问题。我刚刚与他们的一位数据科学家证实了这一点。

我使用的是Anaconda 2.0/Python 2.7.7 python 版本。在这里,由于某些未知原因,将出现错误。如果您只使用Anaconda 4.0/Python 2.7.11,它将按预期工作。