如何按行随机打乱 pandas 数据帧
How to shuffle a pandas dataframe randomly by row
我正在尝试按行而不是按列打乱 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))
但是,这仅按列而非行排列。
您可以通过使用示例方法并将其应用于轴 #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)
我正在尝试按行而不是按列打乱 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))
但是,这仅按列而非行排列。
您可以通过使用示例方法并将其应用于轴 #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)