python - 如何按行随机打乱 Pandas 数据框

标签 python pandas numpy shuffle

<分区>

我正在尝试按行而不是按列来打乱 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)    

关于python - 如何按行随机打乱 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923429/

相关文章:

python - 构造相似度矩阵的最有效方法

python - 根据数据框中列表对象的内容选择 Pandas 数据框

python - 根据列值将数据从一个 Pandas 数据框复制到另一个

python - 将 bool 数组转换为递增数值数组的优雅方法是什么?

python - 如何从 url 列表创建 Dask DataFrame?

python - 显示值 Django Python

Python 在检测到的声音上录制音频

python - 获取多索引 pandas 系列的某个级别内序列的第一个和最后一个元素

python - 如何在ndarray中找到数字层的总和

numpy - python numpy MKL 错误