将DataFrame A的索引与DataFrame B的列号匹配

时间:2019-10-28 03:24:06

标签: python pandas indexing

简而言之,如何将DataFrame的索引号与单独的DataFrame的列号匹配?


我正在尝试这样做^,因为DataFrame A拥有一份投资组合列表,该投资组合中每只基金的权重以及相应的指标(收益,波动率等),而DataFrame B则拥有每一项的每日累计收益DataFrame A中概述的投资组合。请参见下面的每个摘要...

DataFrame A

   PSGAX  MACGX  CPOAX  MSFBX  ...  VINIX  Returns  Volatility  Sharpe Ratio
3   0.34  0.000    0.0  0.272  ...   0.15    0.130       0.097         1.031
2   0.00  0.000    0.0  0.000  ...   0.15    0.088       0.081         0.716
0   0.00  0.612    0.0  0.068  ...   0.15    0.097       0.145         0.462
1   0.00  0.000    0.0  0.000  ...   0.15    0.075       0.155         0.290

DataFrame B

                       0             1             2             3
Date                                                              
2014-10-28      0.000000      0.000000      0.000000      0.000000
2014-10-29      0.000000      0.000000      0.000000      0.000000
2014-10-30  10064.705138   8326.212482   7397.407442  10071.353993
2014-10-31  10201.869986   8192.885999   7445.309580  10188.468770
2014-11-03  10184.040340   8272.103934   7447.680945  10148.797890
2014-11-04  10167.215094   8139.644423   7445.886503  10167.811613
2014-11-05  10070.419821   8009.376679   7467.766390  10212.995583
2014-11-06  10169.867499   8145.063117   7479.148990  10237.356046
2014-11-07  10157.369105   8388.279532   7479.980665  10201.779090
2014-11-10  10203.803157   8195.931455   7489.981792  10242.488798
2014-11-11  10215.416983   8344.922782   7488.531872  10274.749752
2014-11-12  10241.533449   8329.066481   7485.325991  10289.547296
......................................................................
2019-10-21  15202.051493  12506.156321  14809.452786  18902.729085
2019-10-22  14895.540671  12469.054343  14759.975126  18747.214047
2019-10-23  14921.969830  12519.182867  14765.817287  18799.355736
2019-10-24  15018.618443  12670.871976  14810.664506  18882.446150
2019-10-25  15104.878608  12723.237235  14833.833249  18928.260160

如您所见,DataFrame A按Sharpe Ratio排序,这就是索引不是按数字顺序的原因。在这种情况下,DataFrame B的第三列包含“最佳”投资组合的累积日收益,如DataFrame A所示。

1)那么我如何知道DataFrame B的“最佳”列(在本例中为第三列),知道它是DataFrame A中的第一行,并且其索引值与其在DataFrame B中的位置相匹配? / strong>

2)如果我想以类似的方式称呼第四名“最佳”投资组合,那该怎么办?

0 个答案:

没有答案