Python 3.x 基于结果从groupby中的不同列获取值

Python 3.x 基于结果从groupby中的不同列获取值,python-3.x,pandas,pandas-groupby,Python 3.x,Pandas,Pandas Groupby,给定df session article_id article_type primary_section 1 nan nan nan 1 123 magazine sport 1 125 tech laptops 2 126 food asian_food 2 127

给定df

session article_id  article_type    primary_section
1        nan        nan             nan
1        123        magazine        sport
1        125        tech            laptops
2        126        food            asian_food
2        127        food            euro_food
我想按会话id分组,并根据article_id上的“first”函数的结果获取会话中的article_类型、primary_部分和页面 输出:

您可以先使用
转换

m=df.assign(page_in_sess=df.groupby('session').cumcount()+1)
final=m[m.article_id.eq(m.groupby('session')['article_id'].transform('first'))]


谢谢,它可以工作,但是创建了一个重复的索引“session”,所以我添加了final.groupby('session_id').first()和它的perfer。
m=df.assign(page_in_sess=df.groupby('session').cumcount()+1)
final=m[m.article_id.eq(m.groupby('session')['article_id'].transform('first'))]
   session  article_id article_type primary_section  page_in_sess
1        1       123.0     magazine           sport             2
3        2       126.0         food      asian_food             1