2016-07-21 2 views
2

나는 여러 가지 분석을 수행하고 피치 당 가격 차트를 만들 수 있도록 급료를 intergers로 변경하려고합니다. 이 작업을 시도하면 데이터 프레임에 to_numeric 특성이 없습니다. 무슨 일이 일어나고 있는지 궁금해서 API DOC 코드가 있습니다. 그것은 DataFrames 또는 뭔가 목록입니다. 번호 기호를 변경해야합니까?누구나이 오류에 대해 설명 할 수 있습니까? [AttributeError : 'DataFrame'객체에 'to_numeric'속성이 없습니다.]

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()) 
+0

코드에서 오류를 인쇄하십시오. –

+0

역 추적 (마지막으로 가장 최근 통화) : 파일 "/home/mdz5032/PMLB.py", 라인 (38), df3.to_numeric에서 (Avg_Annual) 파일 "/usr/local/lib/python3.4/dist- getattribute __ (자체, 이름) AttributeError : 'DataFrame'객체에 'to_numeric'속성이 없습니다. – Mark

+0

답변을 업데이트했습니다. 그것은 내 경우에 효과가있어, 당신의 그것을 밖으로 시도하십시오. –

답변

3

함수를 호출하는 방식으로 사용하면, 수정과 같이 할 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 교체 다음을 수행 및 결과보고 싶다면 : 당신이 형식을 다시 추가하려면

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()) 

를, 그것은 간단합니다.

관련 문제