如何在pandas中对一列进行排列

10

我有一个带有3列的pandas数据框:

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个回答

15

使用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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接