在pandas dataframe中为条件创建列

时间:2017-06-14 11:46:28

标签: python pandas

我在pandas dataframe df中有一个表

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

在此特定key_no中与多个id

相关联

我想创建一个包含列

的新数据框
keyno    start_id    end_id
 1          1          2
 2          3          5
 3          6          7

即创建列" start_id'和' end_id'对于每个keyno,在dataframe df2

我们可以尝试使用df.groupby,但是如何使用它创建新的df2,我是python的新手, 任何线索?

1 个答案:

答案 0 :(得分:1)

groupbyagg使用first + lastrename的最后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