熊猫组合和合并

问题描述 投票:-1回答:1

如果您有以下数据集,

BookStrategy    Trade   DV01    Maturity

STRAT1  Bond    1000    04/05/23

STRAT1  Swap    -200    04/05/23

STRAT1  Swap    -300    04/05/23

STRAT1  Swap    -500    04/05/23

最终目标是获得这个

STRAT1  Bond    1000    04/05/23    STRAT1  Swap    -200    04/05/23    STRAT1  Swap    -300    04/05/23    STRAT1  Swap    -500    04/05/23

STRAT1  Swap    -200    04/05/23    STRAT1  Bond    1000    04/05/23    STRAT1  Swap    -300    04/05/23    STRAT1  Swap    -500    04/05/23

STRAT1  Swap    -300    04/05/23    STRAT1  Bond    1000    04/05/23
STRAT1  Swap    -200    04/05/23    STRAT1  Swap    -500    04/05/23

STRAT1  Swap    -500    04/05/23    STRAT1  Bond    1000    04/05/23    STRAT1  Swap    -200    04/05/23    STRAT1  Swap    -300    04/05/23

简而言之,如果我有

ROW1

2行

斯布克

ROW4,

我想要组合

row1 --> row1 row2 row3 row4

row2 --> row2 row1 row3 row4

row3 --> row3 row1 row2 row4

row4 --> row4 row1 row2 row3

到目前为止我的代码是这样的,

dataset = pd.read_csv('bla.csv')

print (dataset.head(1))

df = dataset.values

df1 = pd.DataFrame(df.reshape(1,-1))

这给出了输出,

0   STRAT1  Bond    1000    04/05/23    STRAT1  Swap    -200    04/05/23    STRAT1  Swap    -300    04/05/23    STRAT1  Swap    -500    04/05/23
python-3.x pandas csv
1个回答
2
投票

您可以使用pop移动列表

l=[]
for x in range(len(df)):
    s = df.apply(tuple, 1).values.tolist()
    s=[s.pop(x)]+s
    l.append(s)

pd.DataFrame(l).stack().apply(pd.Series).unstack().sort_index(level=1,axis=1)

Out[398]: 
        0     1     2         3       0     1     2         3       0     1  \
        0     0     0         0       1     1     1         1       2     2   
0  STRAT1  Bond  1000  04/05/23  STRAT1  Swap  -200  04/05/23  STRAT1  Swap   
1  STRAT1  Swap  -200  04/05/23  STRAT1  Bond  1000  04/05/23  STRAT1  Swap   
2  STRAT1  Swap  -300  04/05/23  STRAT1  Bond  1000  04/05/23  STRAT1  Swap   
3  STRAT1  Swap  -500  04/05/23  STRAT1  Bond  1000  04/05/23  STRAT1  Swap   
     2         3       0     1    2         3  
     2         2       3     3    3         3  
0 -300  04/05/23  STRAT1  Swap -500  04/05/23  
1 -300  04/05/23  STRAT1  Swap -500  04/05/23  
2 -200  04/05/23  STRAT1  Swap -500  04/05/23  
3 -200  04/05/23  STRAT1  Swap -300  04/05/23  
© www.soinside.com 2019 - 2024. All rights reserved.