Python/Pandas:在多个分组的 pandas 列中的一列中随机排列数据

问题描述 投票:0回答:1

我正在尝试使用 pandas 和 numpy 来混洗数据框中同一组中的数据(将 4 列分组在一起),如下所示。 分组的列是 ID、值、来源、类型和功能。我已将相同的值从“值”列复制到“values_new_column”中,并希望在这个新列“values_new_column”(附图)中进行洗牌。 到目前为止,我已经编写了这段代码:

pdf1["values_new_column"] = pdf1.groupby("values")['source','type', 'function', 'ID'].transform(np.random.permutation)

该错误表明当前库表示将不推荐使用多个键进行索引,并要求我改用列表。有什么方法可以将多个分组的 pandas 列中的一列中的记录打乱吗?

预期输出:在此处输入图像描述

python python-3.x pandas dataframe numpy
1个回答
0
投票

你把参数弄乱了一点。这是排列选定组中的值的正确方法:

df['new_values'] = df.groupby(['source','type', 'function', 'ID'])['values'].transform(np.random.permutation)
© www.soinside.com 2019 - 2024. All rights reserved.