将dataframe groupby复制到同一行中具有分组观测的新dataframe

2024-10-04 01:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个df,其中观察值被分组two by two,如下所示:

group user amount
ALFA   x    2.3
ALFA   y    1.9
BETA   w    1.8
GAMMA  z    1.3
BETA   s    0.9
GAMMA  q    0.4

我希望用户属于同一组的新df位于同一行,如下所示:

user1 user2 amount1 amount2
 x      y     2.3     1.9
 w      s     1.8     0.9
 z      q     1.3     0.4

值不需要以任何特定方式排序

我试过使用df.groupby('group').agg(['min','max']),但这是按照字母顺序对用户进行排序,而不是相应的成对用户数量

有人知道如何解决熊猫的问题吗


Tags: 用户dfby排序groupamountbetatwo
1条回答
网友
1楼 · 发布于 2024-10-04 01:27:24

对列group上的数据帧进行分组,然后在列表理解中使用np.hstack水平堆叠相应的usersamount并创建新的数据帧:

d = pd.DataFrame([
       np.hstack([g['user'], g['amount']]) for _, g in df.groupby('group')],
       columns=['user1', 'user2', 'amount1', 'amount2'])

结果:

  user1 user2  amount1  amount2
0     x     y      2.3      1.9
1     w     s      1.8      0.9
2     z     q      1.3      0.4

相关问题 更多 >