与Python一并使用的组合

时间:2018-07-30 16:36:05

标签: python-3.x pandas csv merge

我的数据看起来像这样。

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列! 任何想法?

0 个答案:

没有答案