我需要以相同的随机方式随机打乱两个熊猫数据帧的行

Posted

技术标签:

【中文标题】我需要以相同的随机方式随机打乱两个熊猫数据帧的行【英文标题】:I need to random shuffle rows of two pandas DataFrames in the same random way 【发布时间】:2019-01-02 01:39:42 【问题描述】:

我有两个数据框 A 和 B ,尺寸为 MxN ,我想随机洗牌。 A 和 B 具有相同的列名和索引。我知道如何使用 df.apply(np.random.shuffle) 方法对每列内的数据进行洗牌,但每列的排列方式不同。我希望如果 A 的第一行在 shuffle 后成为第二行,B 的第一行也成为第二行,等等。我该怎么做?

【问题讨论】:

我认为这是***.com/questions/29576430/…的副本 【参考方案1】:

我是瞎子。很简单。如果我们有一个排列 PMT 列表。我们可以这样做:

A_new = A.iloc[PMT]
B_new = B.iloc[PMT]

就是这样。

【讨论】:

【参考方案2】:

这不使用 pandas 但有效

from random import shuffle
ind_list=[i for i in range(M)]
shuffle(ind_list)
A=A[ind_list,:]
B=B[ind_list,:]

【讨论】:

以上是关于我需要以相同的随机方式随机打乱两个熊猫数据帧的行的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫中洗牌但有序

按时间戳列过滤/选择熊猫数据帧的行

更改熊猫数据框中随机选择的行的顺序

为啥打乱训练数据会影响我的随机森林分类器的准确性?

Python 如何随机打乱列表(List)排序

访问大熊猫数据一百万次 - 需要提高效率