繁体   English   中英

谁能解释这个错误[AttributeError:“ DataFrame”对象没有属性“ to_numeric”]

[英]Can anyone explain this error [AttributeError: 'DataFrame' object has no attribute 'to_numeric']

我正在尝试将薪水更改为整数,这样我就可以进行一些分析,并绘制出每个间距的价格图表。 当我尝试执行此操作时,它说数据帧没有属性to_numeric。 我得到了API DOC的代码,所以我想知道正在发生什么。 它是DataFrames列表还是其他东西。 我应该更改数字符号吗?

import pandas as pd
import pandas_datareader.data as web

players = pd.read_html('http://www.usatoday.com/sports/mlb/salaries/2013/player/p/')


df1 = pd.DataFrame(players[0])
df1.drop(df1.columns[[0,3,4, 5, 6]], axis=1, inplace=True)
df1.columns = ['Player', 'Team', 'Avg_Annual']
#print (df1.head(10))

p2 = pd.read_html('http://www.sportingcharts.com/mlb/stats/pitching-pitch-count-leaders/2013/')


df2 = pd.DataFrame(p2[0])

df2.drop(df2.columns[[0,2, 3]], axis=1, inplace=True)



#print (df2.head(10))

df1.set_index ('Player')
df2.set_index('Player')




df3 = pd.merge(df1, df2, on='Player')

df3.set_index('Player', inplace=True)
df3.columns = ['Team', 'Avg_Annual', 'Pitch_Count']
print (df3.head())

df3.to_numeric(Avg_Annual)
values = (df3.Avg_Annual) - (df3.Pitch_Count)

print (values.head())

给出错误:

追溯(最近一次通话):文件“ /home/mdz5032/PMLB.py”,第38行,位于df3.to_numeric(Avg_Annual)中,文件“ /usr/local/lib/python3.4/dist-packages/pandas/core” /generic.py“,第2672行,在getattr返回对象中。 getattribute (自身,名称)AttributeError:'DataFrame'对象没有属性'to_numeric'

调用函数的方式涉及使用模块,然后传入要修改的DataFrame列,如下所示:

pd.to_numeric(df3.Avg_Annual)

您将收到另一个错误,因为该模块无法将美元符号和逗号转换为数字。 尝试这个:

values = []

for i in range(0, len(df3.Avg_Annual)):
    values.append(int(df3.Avg_Annual[i][2:].replace(',','')) - df3.Pitch_Count[i])

如果df3.Avg_Annual值替换df3.Avg_Annual ,请执行以下操作并查看结果:

for i in range(0, len(df3.Avg_Annual)):
    df3.Avg_Annual[i] = (int(df3.Avg_Annual[i][2:].replace(',','')) - df3.Pitch_Count[i])
print (df3.head())

如果要重新添加格式,这很容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM