如何基于Walkthrough Completed统计各ToD的完成/进行中数量并生成对比柱状图
嘿,我来帮你解决这个统计+可视化的问题!核心在于先把数据按ToD和Walkthrough Completed状态做分组计数,再基于整理好的数据生成并列柱状图——我给你一步步拆解:
第一步:搞定统计逻辑
首先你需要把指定日期的数据筛选出来,然后按「ToD」和「Walkthrough Completed」两个维度分组统计数量。这里分两种常用工具的实现方式:
如果你用Excel
- 先筛选出目标日期的所有行;
- 插入数据透视表:
- 把「ToD」拖到「行」区域,「Walkthrough Completed」拖到「列」区域;
- 把任意一列(比如ID或者行号)拖到「值」区域,然后设置值汇总方式为「计数」;
- 这样你就能得到一个表格:每一行是一个ToD,每一列对应「Complete」和「In-Progress」的数量,空值可以填0。
如果你用Python(Pandas)
假设你的数据框叫df,日期列是Date,指定日期是'2024-05-20',可以这么写:
# 筛选指定日期的数据 filtered_df = df[df['Date'] == '2024-05-20'] # 按ToD和状态分组计数,然后把状态转成列(方便后续绘图) count_df = filtered_df.groupby(['ToD', 'Walkthrough Completed']).size().unstack(fill_value=0)
这段代码会生成一个新的数据框,索引是ToD,列是「Complete」和「In-Progress」,单元格就是对应的数量。
第二步:生成并列柱状图
有了整理好的计数表格,生成并列柱状图就很简单了:
Excel里操作
选中数据透视表生成的计数表格,直接点击「插入」→「柱状图」→「簇状柱形图」,就是你要的并列效果。
Python里操作(Matplotlib/Seaborn)
用Pandas自带的绘图功能就行,一行代码搞定:
import matplotlib.pyplot as plt count_df.plot(kind='bar', figsize=(10, 6), rot=0) plt.title('Walkthrough Status by ToD (Specified Date)') plt.xlabel('Time of Day (ToD)') plt.ylabel('Count') plt.legend(title='Walkthrough Status') plt.show()
如果用Seaborn的话,可以把数据转成长格式再绘图,也能得到同样效果:
import seaborn as sns # 把宽格式转成长格式 long_df = count_df.reset_index().melt(id_vars='ToD', var_name='Status', value_name='Count') sns.barplot(data=long_df, x='ToD', y='Count', hue='Status') plt.title('Walkthrough Status by ToD (Specified Date)') plt.show()
这样就能得到你想要的:X轴是ToD,每个ToD对应两根柱子,分别代表「Complete」和「In-Progress」的数量。
内容的提问来源于stack exchange,提问作者WedgeBuster53
相关产品推荐
相关产品推荐

