我正在尝试按行而不是按列对pandas数据帧进行混洗。
我有以下数据帧:
row1 row2 row3
1 3 1 6
2 5 2 7
3 7 3 8
4 9 4 9并且想要对df进行混洗以实现随机排列,例如:
row1 row2 row3
1 6 3 1
2 3 9 2
3 7 5 8
4 4 9 7我试过了:
df1 = df.reindex(np.random.permutation(df.index))但是,这只按列排列,而不按行排列。
发布于 2017-12-21 19:03:35
您可以通过使用sample方法并将其应用于轴# 1来实现这一点。这将对一行中的元素进行混洗:
df = df.sample(frac=1, axis=1).reset_index(drop=True)你想要的数据帧看起来是完全随机的,这可以通过先按行再按列进行混洗来完成:
df = df.sample(frac=1, axis=1).sample(frac=1).reset_index(drop=True)编辑:
import numpy as np
df = df.apply(np.random.permutation, axis=1) https://stackoverflow.com/questions/47923429
复制相似问题