为datafram中的条件组创建列

2024-04-25 14:50:55 发布

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

我在数据帧df中有一个表

id   key_no
1     1
2     1
3     2
4     2
5     2
6     3
7     3

在此特定的密钥中,编号与多个id相关联

我想创建一个包含列的新数据帧

keyno    start_id    end_id
 1          1          2
 2          3          5
 3          6          7

即在数据帧df2中为每个keyno创建列“start\u id”和“end\u id”

我们能试着用吗数据框groupby,但是如何使用它创建新的df2,我对python还不熟悉, 有线索吗?你知道吗


Tags: 数据keynoiddf密钥start编号
1条回答
网友
1楼 · 发布于 2024-04-25 14:50:55

通过^{}^{}使用^{}+^{}。最后rename列按dict

d = {'first':'start_id','last':'end_id'}
df = df.groupby('key_no')['id'].agg(['first','last']).rename(columns=d)
print (df)
        start_id  end_id
key_no                  
1              1       2
2              3       5
3              6       7

相关问题 更多 >