Pandas基于ID列统计Usage_type列各字符串的累计分类计数
实现方案
你可以通过独热编码生成哑变量后按ID分组累计求和实现,代码如下:
import pandas as pd # 示例原数据构造,实际使用时替换为你自己的df即可 df = pd.DataFrame({ 'ID': [5, 6, 7, 5, 7, 10], 'Usage_type': ['Note', 'Note', 'Service', 'Note', 'Note', 'Service'] }) # 核心计算逻辑 df = pd.concat([ df, pd.get_dummies(df['Usage_type'], prefix='type') .groupby(df['ID']) .cumsum() ], axis=1)
逻辑说明
- 用
pd.get_dummies将Usage_type的不同取值转换为0/1格式的哑变量列,自动生成type_Note、type_Service字段 - 按
ID字段分组后对哑变量列做累计求和,即可得到每个ID对应不同Usage_type的历史累计计数 - 最后将计算结果与原df拼接,即可得到你需要的输出格式
内容的提问来源于stack exchange,提问作者mmkb
相关产品推荐
相关产品推荐

