excel如何生成多维柱状图?
假如我们已经统计出一份公司近几年按照季度汇总的销售报表,且已经按照年销售额进行排序。
生成下图这样的年度、季度多维度的柱状图可以一目了然地呈现销售随年度、季度的变化情况。
在已经汇总统计出上面表数据的情况下,生成这样的多维柱状图是非常简单的,鼠标选择除总额列之外的所有数据,进入插入选项卡,点击查看所有图表指示,在所有图表中选择柱状图-->三维簇状柱形图,选中季度为图例的图表示例,然后点击确定就可以生成所需的多维柱状图了。
使用pandas快速分析原始数据
很显然,如果你是这个报表任务的接手人,很可能你最初得到只是一份销售的原始数据,比如像下面这样,为了方便展示这里仅给出部分年份季度的样例数据。
可以分几步来完成这个报表统计任务,首先按照年份+季度分组汇总各季度的销售额,然后重新排列使季度一列数据转换为行标题,行列标题对应的单元格则为销售额,最后增加一列总额并按照总额降序排列就可以得到文章开始呈现的统计数据表了。
excel表格本身功能也非常强大,比如使用透视表可以达到各种汇总统计的目的,但是仅使用excel手工操作应该无法一步到位搞定上面的任务。可以借助pandas数据分析的强大功能编写一段代码就可以轻松完成这个统计分析任务,下面给出示例代码。
import pandas as pd
# 假设原始数据文件名为“企业销售数据.xlsx”
df = pd.read_excel("企业销售数据.xlsx")
# 第一步按年份季度汇总各商品销售数据
data = df.groupby(["年份","季度"]).sum("销售额").reset_index()
# 在原季度数字之后添加字符串“季度”
data["季度"] = data["季度"].astype(str) + "季度"
# 这里data的输出为:
# |年份|季度|销售额|
# |---|---|---|
# |0|2020|1季度|75.220524|
# |1|2020|2季度|19.023056|
# |2|2020|3季度|91.503288|
# |3|2021|1季度|201.451306|
# |4|2021|2季度|82.104213|
# |5|2021|3季度|4.803538|
# |6|2022|1季度|22.276532|
# |7|2022|2季度|73.663571|
# |8|2022|3季度|26.897062|
# 第二步重新排列使季度转换为行,计算年度总额并降序排列
pivot_df = data.pivot_table(index="年份", columns="季度", values="销售额")
# 添加总额列
pivot_df["总额"] = data.groupby("年份")["销售额"].sum()
# 按照总额降序排列
pivot_df = pivot_df.sort_values("总额", ascending=False)
# 这里pivot_df输出为
# 年份 1季度 2季度 3季度 总额
# 2021 201.451306 82.104213 4.803538 288.359056
# 2020 75.220524 19.023056 91.503288 185.746869
# 2022 22.276532 73.663571 26.897062 122.837165
# 最终结果导出为excel文件
pivot_df.to_excel("统计结果.xlsx")