numpy 如何在pandas中改变框架结构

ubof19bj  于 2024-01-08  发布在  其他
关注(0)|答案(1)|浏览(222)

我从两个这样的字典中创建了一个框架

  1. import pandas as pd
  2. summary={'BTC': {'DAE': -11661300, 'Vega': -661, 'Theta': 109, 'Gamma': -32391},
  3. 'ETH': {'DAE': -533985, 'Vega': -227, 'Theta': 518, 'Gamma': -289779}}
  4. summary_df = pd.DataFrame.from_dict(summary)
  5. summary_df = summary_df.transpose()
  6. display(summary_df)
  7. greeks_6_pm= {'BTC': {'DAE': -11725765, 'Vega': -567, 'Theta': 79, 'Gamma': 85512},
  8. 'ETH': {'DAE': -676607, 'Vega': -15, 'Theta': 186, 'Gamma': -78159}}
  9. change_of_greeks_df = pd.DataFrame(summary).sub(pd.DataFrame(greeks_6_pm)).transpose().add_prefix("△")
  10. pnl_summary = pd.merge(summary_df, change_of_greeks_df, left_index=True, right_index=True)

字符串
我得到的输出像

  1. DAE Vega Theta Gamma DAE Vega Theta Gamma
  2. BTC -11661300 -661 109 -32391 64465 -94 30 -117903
  3. ETH -533985 -227 518 -289779 142622 -212 332 -211620


但我需要输出像

  1. Currency Dae Vega theta gamma
  2. BTC -11661300 -661 109 -32391
  3. BTC 64465 -94 30 -117903
  4. ETH -533985 -227 518 -289779
  5. ETH 142622 -212 332 -211620


尝试了

  1. pnl_summary = pd.concat([summary_df, change_of_greeks_df], axis=0, keys=['', 'Changed']).swaplevel(axis=0)
  2. display(pnl_summary)


但是得到的输出

  1. DAE Vega Theta Gamma DAE Vega Theta Gamma
  2. BTC -11,661,300 -661 109 -32,391 nan nan nan nan
  3. ETH -533,985 -227 518 -289,779 nan nan nan nan
  4. BTC Changed nan nan nan nan 64,465 -94 30 -117,903
  5. ETH Changed nan nan nan nan 142,622 -212 332 -211,620


如何在JavaScript中获得所需的输出

vojdkbi0

vojdkbi01#

给您:

  1. back2greek = pnl_summary[change_of_greeks_df.columns].set_axis(summary_df.columns, axis=1)
  2. back2greek = back2greek.set_index(back2greek.index.astype(str) + '△')
  3. df = pd.concat([pnl_summary[summary_df.columns], back2greek]).sort_index()
  4. df
  5. DAE Vega Theta Gamma
  6. BTC -11661300 -661 109 -32391
  7. BTC 64465 -94 30 -117903
  8. ETH -533985 -227 518 -289779
  9. ETH 142622 -212 332 -211620

字符串

相关问题