Python 3.x 基于结果从groupby中的不同列获取值
给定dfPython 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
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