我的pandas数据框有3列:
X1 X2 Y
1 2 1
2 4 0
3 6 1
我想只置换一列X1,结果是:
X1 X2 Y
3 2 1
1 4 0
2 6 1
我只是通过重新索引它们来找到如何置换所有列,而不是如何仅对一列执行此操作。
答案 0 :(得分:7)
df['X1'] = np.random.permutation(df['X1'])
print (df)
X1 X2 Y
0 3 2 1
1 2 4 0
2 1 6 1
答案 1 :(得分:2)
万一你不想要一个随机的排列,你想要一个特定的排列"你总是可以roll
列:
>>> import numpy as np
>>> df['X1'] = np.roll(df['X1'], 1) # move each item one row down (with wraparound)
>>> df
X1 X2 Y
0 3 2 1
1 1 4 0
2 2 6 1