我有两个数据框,我想创建第三个数据框,并取一个数据框和另一个数据框的值
DF A:“返回”
AAPL ADBE NKE SBUX PEP KO INTC MMM MSFT GE FDX
Date
2009-01-31 -0.009140 -0.145214 -0.085786 -0.031202 -0.042499 -0.044760 -0.002232 -0.157441 -0.050325 -0.325479 -0.164576
2009-02-28 0.162989 0.247515 0.127281 0.194091 0.075887 0.094308 0.165302 0.089574 0.128799 0.172283 0.032273
2009-03-31 0.179829 0.245793 0.112437 0.263541 -0.033982 -0.020691 0.048695 0.147115 0.097930 0.224132 0.229373
2009-04-30 0.076325 0.029896 0.083686 -0.004853 0.044993 0.132718 0.004629 -0.000037 0.036953 0.063550 -0.009516
2009-05-31 0.047594 0.004249 -0.092617 -0.035364 0.062561 -0.007004 0.051452 0.051206 0.129154 -0.131714 0.005539
和DF B:“信号”
0 1 2 3
2009-01-31 AAPL SBUX KO MMM
2009-02-28 AAPL SBUX PEP INTC
2009-03-31 ADBE SBUX INTC GE
2009-04-30 ADBE SBUX GE FDX
2009-05-31 AAPL NKE KO GE
所以我想要第三个数据框:从第二个数据框中命名的列中获取“返回”值
答案 0 :(得分:2)
IIUC,您可以在索引和每一列上使用lookup
和apply
df_B.apply(lambda x: df_A.lookup(df_B.index, x))
Out[1187]:
0 1 2 3
2009-01-31 -0.009140 -0.031202 -0.044760 -0.157441
2009-02-28 0.162989 0.194091 0.075887 0.165302
2009-03-31 0.245793 0.263541 0.048695 0.224132
2009-04-30 0.029896 -0.004853 0.063550 -0.009516
2009-05-31 0.047594 -0.092617 -0.007004 -0.131714