python - 如何在 Pandas 中执行依赖值的数据透视表/Groupby?
问题描述
我有以下数据框:
Tran ID Category Quantity
0 001 A 5
1 001 B 2
2 001 C 3
3 002 A 4
4 002 C 2
5 003 D 6
我想把它变成:
Tran ID A B C D Quantity
0 001 True True True False 10
1 002 True False True False 6
2 003 False False False True 6
我知道我可以groupby
用来获得数量的总和,但我不知道如何执行我描述的枢轴。
解决方案
用于带有聚合get_dummies
的指标max
并添加带有聚合的新列sum
:
#pandas 0.23+
df1 = pd.get_dummies(df.set_index('Tran ID')['Category'], dtype=bool).max(level=0)
#oldier pandas versions
#df1 = pd.get_dummies(df.set_index('Tran ID')['Category']).astype(bool).max(level=0)
s = df.groupby('Tran ID')['Quantity'].sum()
df2 = df1.assign(Quantity = s).reset_index()
print (df2)
Tran ID A B C D Quantity
0 001 True True True False 10
1 002 True False True False 6
2 003 False False False True 6
推荐阅读
- python - 用 joblib Parallel 填充数组
- javascript - 使用javascript动态单击按钮时如何在innerHTML中显示数据?
- react-native - Formic 组件导致“错误:元素类型无效”。无法确定原因
- javascript - Nodejs Sequelize 的 FindOne() 模型包含舍入或截断的值
- vue.js - Vuejs - 如何添加多个加载指示器(微调器)以彼此具有不同的状态?
- html - 为什么溢出会覆盖父容器宽度?
- node.js - Angular SSR - 通用,
- kubernetes - 在 traefik TCP 路由映射中使用 hostSNI(*) 有什么缺点
- xslt - p & imag 移入 observ 元素 - XSLT
- html - 如何使用 display flex 在图像网格下方设置