如何在pandas中置换一列

时间:2017-06-20 10:10:53

标签: python pandas dataframe permutation

我的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

我只是通过重新索引它们来找到如何置换所有列,而不是如何仅对一列执行此操作。

2 个答案:

答案 0 :(得分:7)

使用numpy.random.permutation

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