Pandas如何按相同TICKET_ID统计行数并赋值给ART_IN_TICKET列
Pandas 实现同TICKET_ID行数统计赋值方案
核心实现代码如下:
# 假设你的DataFrame变量名为df df['ART_IN_TICKET'] = df.groupby('TICKET_ID')['TICKET_ID'].transform('count')
实现说明
- 先通过
groupby('TICKET_ID')将所有TICKET_ID值相同的行划分为同一组 - 再通过
transform('count')对每个分组统计行数,且将统计结果映射回分组内的每一行,不会改变原DataFrame的行数与行顺序,完美匹配需求 - 若需要统计包含TICKET_ID为空的行,可将
count替换为size:df['ART_IN_TICKET'] = df.groupby('TICKET_ID')['TICKET_ID'].transform('size')
测试验证用例
你可以运行这段代码确认效果:
import pandas as pd # 构造测试数据,模拟问题描述中的示例场景 df = pd.DataFrame({ 'TICKET_ID': [35592159, 35592159, 35592159, 35592159, 35592159, 10001, 10001], 'OTHER_COL': list('abcdefg') }) # 执行统计赋值 df['ART_IN_TICKET'] = df.groupby('TICKET_ID')['TICKET_ID'].transform('count') print(df)
运行后输出结果中,前5行TICKET_ID为35592159的行ART_IN_TICKET值均为5,后两行TICKET_ID为10001的行ART_IN_TICKET值均为2,符合预期。
示例数据参考

内容的提问来源于stack exchange,提问作者JK2018
相关产品推荐
相关产品推荐

