2013-10-13 62 views
2

我想這個轉動數據框「A」這個數據幀:通過調用樞軸方法如何轉動與熊貓

a.pivot('rc', 'algoasdaa', 'rmse') 

algoasdaa  rc  rmse 
0  asa 20-50 0.585161 
1  asa 20-100 0.462159 
2  asa 40-100 2.664910 
3  asa 60-200 3.957400 
4  asa 60-300 3.799590 
5  lorl 20-50 0.696916 
6  lorl 20-100 0.456810 
7  lorl 40-100 2.489900 
8  lorl 60-200 4.004530 
9  lorl 60-300 3.736500 

,但我不斷收到錯誤

KeyError: 'no item named rmse' 

即使這種情況看起來與docs中描述的完全相同

提前致謝!

回答

1

這應該工作,併爲我工作:

>>> df.pivot("rc", "algoasdaa", "rmse") 
algoasdaa  asa  lorl 
rc       
20-100  0.462159 0.456810 
20-50  0.585161 0.696916 
40-100  2.664910 2.489900 
60-200  3.957400 4.004530 
60-300  3.799590 3.736500 

我懷疑你rmse列名有一些空白在那裏,你看不到。例如,如果我添加一個空格,它看起來是一樣的:

>>> df.columns = ["rc", "algoasdaa", " rmse"] 
>>> df 
    rc algoasdaa  rmse 
0 asa  20-50 0.585161 
1 asa 20-100 0.462159 
2 asa 40-100 2.664910 
3 asa 60-200 3.957400 
4 asa 60-300 3.799590 
5 lorl  20-50 0.696916 
6 lorl 20-100 0.456810 
7 lorl 40-100 2.489900 
8 lorl 60-200 4.004530 
9 lorl 60-300 3.736500 

但:

>>> df.pivot("rc", "algoasdaa", "rmse") 
Traceback (most recent call last): 
[...] 
KeyError: u'no item named rmse' 

嘗試

>>> print df.columns 
Index([u'rc', u'algoasdaa', u' rmse'], dtype=object) 

證實了這一點。然後,您可以修復你的讀操作(最好)或一些事後修補他們像

>>> df.columns = [col.strip() for col in df.columns] 

>>> df.columns = pd.Series(df.columns).str.strip() 
+0

DSM您的懷疑是正確的。我現在感覺有點蠢。謝謝! –