如果您具有以下数据集,
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
简而言之,如果我有
第1行
第2行
第3行
第4行,
我希望组合成为
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
答案 0 :(得分: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