我有一个带有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
我只找到了如何通过重新索引来排列所有列,但没有找到如何仅针对一列进行操作。
我有一个带有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
我只找到了如何通过重新索引来排列所有列,但没有找到如何仅针对一列进行操作。
df['X1'] = np.random.permutation(df['X1'])
print (df)
X1 X2 Y
0 3 2 1
1 2 4 0
2 1 6 1
如果您不想要一个随机排列,而是需要一个特定的“排列”,您可以始终使用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