簡體   English   中英

pandas:將 MultiIndex DataFrame 與 Series 相乘

[英]pandas: Multiply MultiIndex DataFrame with Series

我有一個包含以下值的 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',它告訴我:

類型錯誤:只能與其他分層索引對象一起調用

我已將次要索引拆開以使其成為列,並指定 level='minor',axis='columns' 具有相同的結果。

最后,最終結果是能夠在主要列是幾個股票的 DataFrame 上運行相同的計算——在這種情況下, .mul() 是否也適用於每個股票?

謝謝你的協助!

基於系列的它適用於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,也許你可以建議它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM