Python实现统计jobName对应In条目数并新增Qt_Ins列
问题:为DataFrame新增列统计每个jobName对应的In条目数量
原始DataFrame如下:
In DT_INI DT_FIM Status Description jobName 0 IN100 01/01/2022 01/02/2022 Encerrado Abend no job XX_01 XX_01 1 IN200 01/02/2022 01/03/2022 Encerrado Abend no job XX_01 XX_01 2 IN300 01/03/2022 01/04/2022 Encerrado Abend no job XX_02 XX_02
需求:统计每个jobName对应的In条目数量,新增名为Qt_Ins的列,最终效果如下:
In jobName DT_INI DT_FIM Status Description Qt_Ins 0 IN100 XX_01 01/01/2022 01/02/2022 Encerrado Abend no job XX_01 2 1 IN200 XX_01 01/02/2022 01/03/2022 Encerrado Abend no job XX_01 2 2 IN300 XX_02 01/03/2022 01/04/2022 Encerrado Abend no job XX_02 1
解决方案
使用Pandas的groupby结合transform方法即可实现,代码如下:
import pandas as pd # 假设你的DataFrame变量名为df df['Qt_Ins'] = df.groupby('jobName')['In'].transform('count')
原理说明
groupby('jobName'):按jobName字段对DataFrame进行分组['In'].transform('count'):计算每个分组内In列的条目总数,transform方法会将统计结果匹配回原DataFrame的每一行,保证每行都能获取对应分组的统计值
如果需要统计每个jobName下唯一的In值数量,可将count替换为nunique:
df['Qt_Ins'] = df.groupby('jobName')['In'].transform('nunique')
内容的提问来源于stack exchange,提问作者gfernandes
相关产品推荐
相关产品推荐

