2016-07-26 103 views
0

我想使用NBA的數據。這就是爲什麼我必須進行比較。我需要獲得主場勝利的比例。但它不能將字符串轉換爲int。使用python處理csv數據文件

results["HomeWin"]=int(results["Home Team"])<int(results["OT?"]) 
y_true=results["HomeWin"].values 
print("Home win percentage is{0:.1f}%".format(100*results["HomeWin"].sum()/results["HomeWin"].count())) 

錯誤是:不能轉換的系列類型 '詮釋'

+1

使用' astype(int)':'results [「HomeWin」] = results [「Home Team」]。astype(int) EdChum

回答

1

你需要Series.astypestring數字轉換爲int

results["HomeWin"] = results["Home Team"].astype(int) < results["OT?"].astype(int) 

樣品:

import pandas as pd 

results = pd.DataFrame({'Home Team':['1','2','3'], 
        'OT?':['4','2','1']}) 

print (results) 
    Home Team OT? 
0   1 4 
1   2 2 
2   3 1 


results["HomeWin"] = results["Home Team"].astype(int) < results["OT?"].astype(int) 
print (results) 
    Home Team OT? HomeWin 
0   1 4  True 
1   2 2  False 
2   3 1  False 
+0

它給出的錯誤爲:long()與基數爲10的無效字面值:'November' –

+0

存在問題,如'November'等字段中的字符串數據無法轉換編號。你可以通過print(results.ix [pd.to_numeric(results [「Home Team」],errors ='coerce')來檢查這個有問題的值isnull()| pd.to_numeric(results [「OT?」],errors ='coerce')。isnull(),['Home Team','OT?']])' – jezrael

+0

您可以通過'results = pd.DataFrame({'Home Team':['1','2 '','3','November'], 'OT?':['4','September','1','5']})' – jezrael