2013-03-12 62 views
0

當我運行這樣的代碼:「重建索引只與唯一價值指數的有效對象」

import pandas as pd 

A = pd.DataFrame([('a', -1.374201, 35), 
        ('b', 1.415697, 29), 
        ('a', 0.233841, 18), 
        ('b', 1.550599, 30), 
        ('a', -0.178370, 63), 
        ('b', -1.235956, 42), 
        ('a', 0.088046, 2), 
        ('b', 0.074238, 84)], columns='key value other'.split()) 

B = A.groupby('key')['value'].mean() 

C = pd.DataFrame([('a', 0.469924, 44), 
        ('b', 1.231064, 68), 
        ('a', -0.979462, 73), 
        ('b', 0.322454, 97)], columns='key value other'.split()) 

D = C.set_index('key') 
D['value'] -= B 

...最後一行失敗,錯誤:

Exception: Reindexing only valid with uniquely valued Index objects 

我在做什麼錯?

+0

你可以發佈數據嗎? – 2013-03-12 17:23:50

+0

@PaulH:不是真的(有一點,它太大了) – kjo 2013-03-12 17:48:58

+0

@PaulH:我貼了別的東西 – kjo 2013-03-12 17:55:35

回答

2

如果我正確地按照你的榜樣(感謝添加它,BTW),我認爲你需要的是簡單:

D.sub(B, axis='index')

這給了我:

In [29]: D.sub(B, axis='index') 
Out[29]: 
     value  other 
key      
a 0.777595 44.307671 
a -0.671791 73.307671 
b 0.779919 67.548856 
b -0.128690 96.548856 

由於你可以看到,這個混淆了other列。如果這是一個問題,不幸的是,你又回到了同樣的重複索引情況。

相關問題