我有一个像这样的数据帧:
DF1:
col_1, col_2
a,1
b,2
c,3
d,4
我想用两列交换位置连续df1两次,这样我就有:
col_a, col_b
a,1
b,2
c,3
d,4
1,a
2,b
3,c
4,d
我试过了:
df2 = pd.DataFrame(columns=['col_a','col_b'])
df2[['col_a','col_b']] = pd.concat([df1[['col_1','col_2]],df1[['col_2','col_1']]])
但是,这只是将数据帧与自身相连,结果是:
col_a, col_b
a,1
b,2
c,3
d,4
a,1
b,2
c,3
d,4
这样做的正确方法是什么?
使用concat
x = pd.DataFrame(df.iloc[:, [1,0]].values, columns=df.columns)
pd.concat([df, x], sort=False)
col_1 col_2
0 a 1
1 b 2
2 c 3
3 d 4
0 1 a
1 2 b
2 3 c
3 4 d
来自numpy
pd.DataFrame(np.vstack([df.values,df.values[:,::-1]]),columns=df.columns)
Out[850]:
col_1 col_2
0 a 1
1 b 2
2 c 3
3 d 4
4 1 a
5 2 b
6 3 c
7 4 d