首页 > 解决方案 > 一行与 Python 的组合

问题描述

我拥有的数据看起来像这样。

Trade -- Strategy -- -- Maturity

Swap -- OMASW28  -- 10 -- 4/5/2028

Bond -- OMASW28 -- 20 -- 4/5/2028

Bond -- OMASW28 -- 30 -- 4/5/2028

主要目标是找出所有可能的组合及其累积总计,例如,我希望决赛桌看起来像这样。

Trade -- Strategy -- Totals -- Maturity -- Trade -- Strategy -- Totals -- Trade -- Strategy -- Totals

Swap -- OMASW28  -- 10 -- 4/5/2028 -- Bond -- OMASW28 -- 20 -- 4/5/2028 -- 
Bond -- OMASW28 -- 30 -- 4/5/2028

并且在每一行的末尾,有一个总计总计的字段,在这种情况下为 10+20+30 = 60。

我已经到了这里,但这似乎太冗长和复杂。

Trade_x Strategy    Nominal_x   Total_x Maturity_x  Trade_y Nominal_y   Total_y Maturity_y
Swap    OMASW28 -20000000   10  4/5/2028    Swap    -20000000   10  4/5/2028
Swap    OMASW28 -20000000   10  4/5/2028    Bond    20000000    20  4/5/2028
Swap    OMASW28 -20000000   10  4/5/2028    Bond    1000    30  4/5/2028
Bond    OMASW28 20000000    20  4/5/2028    Swap    -20000000   10  4/5/2028
Bond    OMASW28 20000000    20  4/5/2028    Bond    20000000    20  4/5/2028
Bond    OMASW28 20000000    20  4/5/2028    Bond    1000    30  4/5/2028
Bond    OMASW28 1000    30  4/5/2028    Swap    -20000000   10  4/5/2028
Bond    OMASW28 1000    30  4/5/2028    Bond    20000000    20  4/5/2028
Bond    OMASW28 1000    30  4/5/2028    Bond    1000    30  4/5/2028

基本上是以下代码,

a = pd.read_csv('files/input.csv')

b = pd.read_csv('files/input.csv')

merged = a.merge(b, on='Strategy')

这合并了两次,对于这种特殊情况,我需要三次,如果我有 10 行,每行 4 列,我希望最终表格有 40 列宽!任何想法?

标签: python-3.xpandascsvmerge

解决方案


推荐阅读