创建pandas哑变量时如何对Cost求和而非生成二进制值并统计账户数
实现代码与说明
你现有代码仅返回0/1哑变量的原因是str.get_dummies()仅会对分类值做二进制编码,不会关联Cost列的数值,也不会统计账户维度信息,换用透视表结合分组统计的方案即可实现需求:
import pandas as pd # 1. 生成按月份分组、SKU为列的Cost求和表,缺失值填充为0 sku_cost_pivot = df.pivot_table( index="Month", columns="Sku", values="Cost $", aggfunc="sum", fill_value=0 ).reset_index() # 2. 统计每月唯一账户数量 monthly_account_cnt = df.groupby("Month")["Acct_id"].nunique().reset_index(name="total_accounts") # 3. 合并两个表得到最终结果 final_result = pd.merge(sku_cost_pivot, monthly_account_cnt, on="Month") # (可选)如果需要金额前加$符号匹配预期输出格式,添加以下代码 for sku_col in df["Sku"].unique(): final_result[sku_col] = "$" + final_result[sku_col].astype(str)
运行后final_result就是你需要的输出结果。
内容的提问来源于stack exchange,提问作者titu84hh
相关产品推荐
相关产品推荐

