Python 属性错误:';模块';对象没有属性';到"数字"';熊猫

Python 属性错误:';模块';对象没有属性';到"数字"';熊猫,python,pandas,Python,Pandas,下面的代码在Pandas版本为0.16.2的服务器上抛出AttributeError,而在我的机器上运行良好,版本为0.20 df = pandas.read_csv('filename', header = None, error_bad_lines = False, warn_bad_lines =True,quoting=csv.QUOTE_NONE) df = df.drop(df[pandas.to_numeric(df[599], errors='coerce').isnull()

下面的代码在Pandas版本为0.16.2的服务器上抛出AttributeError,而在我的机器上运行良好,版本为0.20

df = pandas.read_csv('filename', header = None, error_bad_lines = False, warn_bad_lines =True,quoting=csv.QUOTE_NONE)

df = df.drop(df[pandas.to_numeric(df[599], errors='coerce').isnull()].index)
错误消息如下所示:

Traceback (most recent call last):
  File "train_model.py", line 11, in <module>
    df = df.drop(df[pandas.to_numeric(df[599], errors='coerce').isnull()].index)
AttributeError: 'module' object has no attribute 'to_numeric'
回溯(最近一次呼叫最后一次):
文件“train_model.py”,第11行,在
df=df.drop(df[pandas.to_numeric(df[599],errors='concurve').isnull().index)
AttributeError:“模块”对象没有属性“to\u numeric”

有没有办法在0.16.2版本中避免此错误?无法更新服务器。

Pandas.to\u numeric仅适用于0.17及更高版本。您可以与
convert\u numeric=True
参数一起使用,错误将自动强制执行

df = df.drop(df[df[599].convert_objects(convert_numeric=True).isnull()].index)

Pandas.to_numeric仅适用于0.17及更高版本。您可以与
convert\u numeric=True
参数一起使用,错误将自动强制执行

df = df.drop(df[df[599].convert_objects(convert_numeric=True).isnull()].index)

如果您在pandas文档中注意到版本0.17中的新增内容, 你会注意到的

pd.to_numeric是一个新函数,用于将字符串强制转换为数字(可能使用强制)(GH11133)

因此,pandas 0.16没有函数
pd.to\u numeric
。但是,您可以使用此功能来实现相同的目的

df = df.drop(df[df[599].astype(float).isnull()].index)

如果您在pandas文档中注意到版本0.17中的新增内容, 你会注意到的

pd.to_numeric是一个新函数,用于将字符串强制转换为数字(可能使用强制)(GH11133)

因此,pandas 0.16没有函数
pd.to\u numeric
。但是,您可以使用此功能来实现相同的目的

df = df.drop(df[df[599].astype(float).isnull()].index)

这里有一个语法问题。你能核对一下吗?@user3667569对不起,我没有正确地复制并通过
df。将对象(convert\u numeric=True)
转换为你的代码。没有意识到您正在删除空字段。为此,您可以使用
.dropna()
,如果我正确理解您的逻辑,它也应该这样做。我不会删除空字段。我的代码的目的是从数据帧中删除列599中具有非浮点值的任何行。此时,您可以直接将
pandas.to\u numeric(df[599],errors='concurve')
df[599]。转换对象(convert\u numeric=True)
进行交换。在版本0.17中,它因更显式的to_数值函数而被弃用。同样,为了清晰起见,我将删除dropna()部分。这里有一个语法问题。你能核对一下吗?@user3667569对不起,我没有正确地复制并通过
df。将对象(convert\u numeric=True)
转换为你的代码。没有意识到您正在删除空字段。为此,您可以使用
.dropna()
,如果我正确理解您的逻辑,它也应该这样做。我不会删除空字段。我的代码的目的是从数据帧中删除列599中具有非浮点值的任何行。此时,您可以直接将
pandas.to\u numeric(df[599],errors='concurve')
df[599]。转换对象(convert\u numeric=True)
进行交换。在版本0.17中,它因更显式的to_数值函数而被弃用。为了清晰起见,我将删除dropna()部分。