猿问

python groupby 然后一些列保留在前面,其他列保留在最后

我有一个数据框,如下所示:


cityid    personid    yearstart monthstart yearend monthend  

1          1           2000       01        2001    02

1          1           2001       02        2001    10

1          2           2001       10        2002    10

2          3           2000       01        2002    12

2          4           2005       08        2006    12

由于person 1incity 1连续有两个术语,我想将这两行组合起来并得到:


cityid    personid    yearstart monthstart yearend monthend  

1          1           2000       01        2001    10

1          2           2001       10        2002    10

2          3           2000       01        2002    12

2          4           2005       08        2006    12

所以每一行都有一个唯一的键 {cityid, personid}。我试过


df = df.groupby['cityid','personid'].['yearstart','momthstart'].first()['yearend, monthend'].last()


但收到错误消息。


我能问一下如何解决这个问题吗?谢谢!


jeck猫
浏览 100回答 1
1回答

德玛西亚99

您可以使用agg:(df.groupby(['cityid','persionid'])   .agg({'yearstart':'first',         'monthstart':'first',         'yearend':'last',         'monthend':'last'}))  
随时随地看视频慕课网APP

相关分类

Python
我要回答