从数据帧创建数据透视表

2024-06-16 15:07:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将此处给出的数据转换为:

original_data

为此:

transformed_data

其中的数字是每家公司的销售额。 如何使用Python实现这一点


Tags: 数据公司数字销售额
2条回答

熊猫的groupby函数是您的朋友。您可以使用它按月份和公司分组,然后重新排列为按公司分组(显示为索引)列:

df.groupby(['Month', 'Company'])['Sales'].sum().unstack()

groupby(['Month', 'Company'])['Sales'].sum()之后,您将公司作为索引,因此使用unstack()将它们更改为列

您可以使用^{}

调用pivot将数据帧从行重塑为列,并且fillna(0)将空单元格替换为零,最后reset_index将去掉分层列

df.pivot(index='Month', columns='Company', values='Sales').fillna(0).reset_index()

输出

Company  Month  Apple    HP
0            1    8.0   0.0
1            2    8.0   0.0
2            3   14.0   0.0
3            4    3.0   0.0
4            5    4.0  10.0
5            6    3.0   9.0
6            7   14.0   9.0
7            8    0.0  10.0
8            9    0.0   3.0
9           10    0.0   4.0

PS:建议在提问时将数据添加为文本,我们无法从图像中复制内容

相关问题 更多 >