2012-11-30 125 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将其应用于数据框中的所有主要列。在考虑了更多之后,我认为这是预期的设计,并且它完美地实现了目标。 –