2

これらの値を含むMultiIndexDataFrameがあります。

                      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()は各エクイティに対しても機能しますか?

ご協力ありがとうございます!

4

1 に答える 1

3

シリーズベースで動作し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でも機能するはずです、多分あなたはそれを提案することができます。

于 2012-12-03T16:56:40.940 に答える