首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按ID分组,并按每个ID计算唯一开始日期。转换回dataframe。熊猫

按ID分组,并按每个ID计算唯一开始日期。转换回dataframe。熊猫
EN

Stack Overflow用户
提问于 2020-11-25 00:10:09
回答 1查看 16关注 0票数 0

我有一个熊猫数据框架:

代码语言:javascript
复制
pd.DataFrame({
    'student_id': ['5', '5', '5', '5', '2', '2'],
    'start_date': ['2020-11-11', '2020-11-11', '2020-11-11', '2020-12-05', '2020-11-25', '2020-11-25']
})

我想按'student_id‘对df进行分组,并计算每行出现多少个相同的开始日期。然后,我想将其转换回原始数据帧。例如,我将创建一个名为'course_enroll_count‘的新列。前三行将显示3,因为学生有3个开始日期'2020-11-11‘。预期输出:

代码语言:javascript
复制
pd.DataFrame({
    'student_id': ['5', '5', '5', '5', '2', '2'],
    'start_date': ['2020-11-11', '2020-11-11', '2020-11-11', '2020-12-05', '2020-11-25', '2020-11-25'],
    'course_enroll_count': [3, 3, 3, 1, 2, 2]
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-25 00:17:29

尝试使用transform

代码语言:javascript
复制
df['new'] = df.groupby(['student_id','start_date'])['start_date'].transform('count')
df
Out[313]: 
  student_id  start_date  new
0          5  2020-11-11    3
1          5  2020-11-11    3
2          5  2020-11-11    3
3          5  2020-12-05    1
4          2  2020-11-25    2
5          2  2020-11-25    2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64990351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档