我想随机选择二维数据帧的几列,并随机排列这些列中的值。我可以轻松地对数据帧的所有值(按列)进行洗牌,但我希望只对随机选择的几个值这样做。
例如,采用下面的 6x6 数据框:
0 1 2 3 4 5
0 5 3 7 1 2 9
1 1 7 5 3 0 8
2 0 2 7 1 6 5
3 8 4 2 1 9 7
4 2 9 5 6 3 4
5 7 5 8 2 1 0
随机选择 6 列中的几列,注意以下输出:
0 1 2 3 4 5
0 2 9 7 1 2 4
1 5 7 5 3 0 0
2 7 2 7 1 6 5
3 8 3 2 1 9 7
4 1 5 5 6 3 9
5 0 4 8 2 1 8
上图显示了第一列、第二列和最后一列已打乱顺序,所有其他列保持原样。
以下代码允许我打乱所有列:
import numpy as np
df = np.random.random((6,6))
np.random.random(df)
然而,经过多次尝试,我无法将其修改为仅选择(随机)几列。任何建议将不胜感激。谢谢。