此问题已在此处有答案:
How can I pivot a dataframe?(5个答案)
9天前关闭
截至9天前,社区正在审查是否重新讨论这个问题。
我正在处理一个具有以下简化结构的数据集:
| SKU|存储代码|销售|
| - -----|- -----|- -----|
| 1| A432|一百二十三|
| 2| B123|四百五十六|
| 1| C234|零九八|
到目前为止,我创建了另一个数据框,它按SKU和销售额对记录进行分组,但是还有其他字段使用其他方法进行聚合。
如何添加Sales at A、Sales at B和Sales at C列。
到目前为止,我已经尝试了使用loc来过滤数据的列的标准创建,但是我还没有成功地迭代SKU
我正在寻找的输出是:
| SKU|销售|一个|B| C类|
| - -----|- -----|- -----|- -----|- -----|
| 1|一百二十三|二百零一|十五|0|
| 2|四百五十六|四百五十六|七个|一百五十|
2条答案
按热度按时间t98cgbkg1#
我真的不明白一些数字,如15,150,201…来自,但您可以尝试使用数据透视表
u5i3ibmn2#
首先,我建议你把数据分类。如果您只对每个SKU的每个连锁店的汇总数据感兴趣,则可以按这两列进行分组(可以使用商店名称系列的
.str
并通过切片获取第一个字符来计算连锁店)。分组后,您可以通过聚合(在本例中使用sum()
聚合)获得一个系列。要恢复SKU和商店链列,您可以
reset_index()
。最后一步是
pivot()
你的表。groupby
和pivot
步骤可以使用pivot_table()
方法组合在一起,如下所示: