Python:按row与name多列分组并生成count计数列
实现按row-name组合统计出现次数并新增列
输入数据
row name Min 11 AA 0.3 11 AA 0.2 11 BB 0.3 11 CC 0.2 12 AS 0.3 12 BE 0.3 12 BE 0.4
预期输出
row name Min Count 11 AA 0.3 2 11 AA 0.2 2 11 BB 0.3 1 11 CC 0.2 1 12 AS 0.3 1 12 BE 0.3 2 12 BE 0.4 2
Python实现代码
用Pandas的groupby结合transform方法可以实现需求,既能保留原DataFrame的所有行结构,又能为每行匹配对应组的出现次数:
import pandas as pd # 构建输入DataFrame df = pd.DataFrame({ 'row': [11, 11, 11, 11, 12, 12, 12], 'name': ['AA', 'AA', 'BB', 'CC', 'AS', 'BE', 'BE'], 'Min': [0.3, 0.2, 0.3, 0.2, 0.3, 0.3, 0.4] }) # 新增Count列,统计每个row-name组合的出现次数 df['Count'] = df.groupby(['row', 'name'])['Min'].transform('count') # 查看结果 print(df)
代码说明
groupby(['row', 'name']):以row和name的组合作为分组依据,精准锁定需要统计的单元transform('count'):对每组的Min列进行计数,并将结果映射回原DataFrame的对应行,确保每行都能获取到所在组的总出现次数
运行代码后输出的结果与预期完全一致。
内容的提问来源于stack exchange,提问作者user12345
相关产品推荐
相关产品推荐

