2012-11-30 184 views
2
系列

我有一個包含這些值的多指標數據幀:大熊貓:乘多指標數據幀與

     AAPL 
      minor   
2007-09-14 OC  0.024436 
2007-09-15 CC  0.030293 
      CO  0.017518 
      OC  0.024688 
      OO  0.031835 

# to_dict(): 

{'AAPL': {(<Timestamp: 2007-09-14 00:00:00>, 'OC'): 0.024436265475779286, 
    (<Timestamp: 2007-09-15 00:00:00>, 'CC'): 0.030293017084353703, 
    (<Timestamp: 2007-09-15 00:00:00>, 'CO'): 0.017518449703066673, 
    (<Timestamp: 2007-09-15 00:00:00>, 'OC'): 0.024688182799779634, 
    (<Timestamp: 2007-09-15 00:00:00>, 'OO'): 0.031834725061579666}} 

-

,幷包含這些值的系列:

CC 15.874508 
CO 18.590320 
OC 30.503468 
OO 15.874508 

# to_dict(): 

{'CC': 15.874507866387544, 
'CO': 18.590320061795602, 
'OC': 30.503467646507644, 
'OO': 15.874507866387544} 

我d希望將所有次要索引CC值乘以Series中的CC值,並且與其他值相同。我看到,給我的.mul方法在這裏另外一個問題,但是當我嘗試,甚至與水平=「次要」,它告訴我:

TypeError: can only call with other hierarchical index objects

我已經開拆未成年人指數,使其列和指定的級別='小',軸='列'具有相同的結果。

最後,最終結果是能夠在主要列是多個股票的DataFrame上運行相同的計算 - 在這種情況下,.mul()是否也會對每個公平起作用?

感謝您的協助!

+0

如果添加DateFrame和Series'.to_dict()'的輸出,那麼我們可以更容易地解決這些類型的問題:)您使用什麼代碼將「次要索引CC乘以CC值「? –

+1

我更新它以添加to_dict()輸出。 –

回答

2

系列基於其工作原理與level

df["C01"].mul(s, level=1) 

major  minor 
2007-09-14 OC  0.745391 
2007-09-15 CC  0.480887 
      CO  0.325674 
      OC  0.753075 
      OO  0.505361 

然後你就可以再次將其插入到你的數據幀。但是,這也應該與DataFrames一起工作,也許你可以建議它。

+0

我使用這個和DataFrame.apply將其應用於數據框中的所有主要列。在考慮了更多之後,我認爲這是預期的設計,並且它完美地實現了目標。 –