我有一个包含以下值的MultiIndex DataFrame:
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}
我想将所有次要索引CC值乘以系列中的CC值,并与其他值相同。我在这里看到了另一个问题,它给了我.mul方法,但是当我尝试这个时,即使是level ='minor',它告诉我:
TypeError:只能与其他分层索引对象一起调用
我已经取消了次要索引以使其成为列,并且指定了level ='minor',axis ='columns',结果相同。
最后,最终的结果是能够在DataFrame上运行相同的计算,其中主要列是几个股票 - 在那个例子中,.mul()也会对每个股票起作用吗?
感谢您的协助!
答案 0 :(得分: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
然后您可以将其再次插入到DataFrame中。但这也适用于DataFrames,也许你可以建议它。