我有一个如下所示的数据框:
Value group_id
23 1
28 1
32 1
....
35 12
23 12
42 12
总共有 6 个唯一的 group_id,每个都有几百个元素。 我想将其转换为一个数据帧,该数据帧在一行中具有单个“group_id”的值。所以我希望我的数据框看起来像这样:
value_1 value_2 value_3 group_id
23 28 32 1
....
35 23 42 12
我尝试使用 pandas.melt 和 pandas.groupby 但未能获得任何结果。
最佳答案
您缺少'Value'
在每个组中的位置。我们可以使用groupby.cumcount
df.set_index(
['group_id', df.groupby('group_id').cumcount() + 1]
).Value.unstack().add_prefix('Value_').reset_index()
group_id Value_1 Value_2 Value_3
0 1 23 28 32
1 12 35 23 42
关于python - 将列值转置为行并根据另一列的值对它们进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725616/