我从一个包含带有时间戳、总数、用户和工作日名称的事务信息的 DataFrame 开始:
Total User Day
CompletedAt
2021-01-02 10:15:07 30.00 AL Saturday
2021-01-02 10:23:37 14.28 AL Saturday
2021-01-02 11:12:23 16.00 AL Saturday
2021-01-02 11:31:13 70.00 AL Saturday
2021-01-02 11:34:20 26.25 AL Saturday
... ... ... ...
2021-01-31 19:09:23 180.00 JB Sunday
2021-01-31 19:46:53 50.00 JB Sunday
2021-01-31 20:49:05 97.50 JB Sunday
2021-01-31 20:51:53 100.00 JB Sunday
2021-01-31 20:54:29 18.75 JB Sunday
此时,我使用框架和枢轴来获取包含每天总计的列的周期索引:
t = total_df.reset_index().pivot_table(index='CompletedAt', columns='Day', values='Total').resample('W').sum()
cats = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
t = t.reindex(columns=cats)
t.T.plot.bar(grid=True)
plt.show()
Day Monday Tuesday Wednesday Thursday Friday Saturday Sunday
CompletedAt
2021-01-03 0.00 0.00 0.00 0.00 0.00 2769.48 1253.99
2021-01-10 2035.39 1684.93 1796.32 1124.67 2349.25 2126.38 879.93
2021-01-17 1050.91 2000.61 2210.88 1268.04 1691.65 980.25 936.74
2021-01-24 2064.03 2568.10 1230.85 1970.11 898.05 1402.96 679.93
2021-01-31 798.75 998.26 1937.80 2333.44 1368.91 964.74 1066.02
最终的情节看起来像this bar plot。最终,我想做的是将条形保持在当前排列中,但每个条形都由 DataFrame 中每个用户的堆叠值组成。在这一点上,我的印象是我需要制作几个子图并将它们组合起来,但我不知道要采取的步骤。