2017-08-16 60 views
0

我有一個數據幀(DF)2列(ID和速率),它看起來像和數據框柱:包含不同的數據類型

id   rate  
0   #NAME? 
1   #NAME? 
2   #NAME? 
3   #NAME? 
4   #NAME? 
5   #NAME? 
6   #NAME? 
7   #NAME? 
8   #NAME? 
9    0.5 
10   #NAME? 
:   : 
211  0.25 
212  0.00 
213  #NAME? 
214  1.00 
215  #NAME? 

正如你可以看到rate列有不止一個鍵入和我試圖總結非#NAME?費率列中的條目。我曾嘗試:

df = pd.read_csv(full_path, header=0, usecols=[0,8], dayfirst=True,index_col=[0], names=['id', 'rate']) 
       print(df) 
       sumRate = sumRate + df['rate'].sum() 

,但我得到返回以下異常:

TypeError: unsupported operand type(s) for +: 'int' and 'str' 

我不確定如何總結浮動值只可惜的數據格式,我拉入數據 - 框架不在我的控制之下。如果任何人可以幫助它將不勝感激。

感謝

回答

1

我認爲你需要to_numericerror='coerce'參數轉換不是數字來NaN,然後再和:

print (pd.to_numeric(df['rate'], errors='coerce')) 
0  NaN 
1  NaN 
2  NaN 
3  NaN 
4  NaN 
5  NaN 
6  NaN 
7  NaN 
8  NaN 
9  0.50 
10  NaN 
11  NaN 
12 0.25 
13 0.00 
14  NaN 
15 1.00 
16  NaN 
Name: rate, dtype: float64 

sumRate = pd.to_numeric(df['rate'], errors='coerce').sum() 
print (sumRate) 
1.75