从其他两个数据框值创建第三个数据框

时间:2019-07-29 09:43:12

标签: python pandas dataframe

我有两个数据框,我想创建第三个数据框,并取一个数据框和另一个数据框的值

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

所以我想要第三个数据框:从第二个数据框中命名的列中获取“返回”值

1 个答案:

答案 0 :(得分:2)

IIUC,您可以在索引和每一列上使用lookupapply

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