【发布时间】:2020-07-08 02:20:02
【问题描述】:
我有一个 Pandas DataFrame,它由一个日期列和一个感兴趣的类别列组成。我想查看每个月的频率计数。当我用 matplotlib 做这个时,我得到了一些看起来很糟糕的东西。
这是按月份分组时框架的外观:
df.resample("M")["category_col"].value_counts(normalize=True).mul(100)
Output
date category_col
2019-12-31 A 41.929004
B 25.758765
C 17.752111
D 9.189919
E 3.625122
F 1.745080
2020-01-31 A 54.052744
C 16.347271
B 14.414431
D 11.677537
E 2.675607
F 0.832411
2020-02-29 A 48.928468
D 22.011116
C 14.084507
C 11.729162
E 2.193272
F 1.053475
2020-03-31 A 54.435410
D 15.718065
C 14.577060
B 11.335682
E 2.884205
F 1.049578
Name: category_col, dtype: float64
这是我的尝试
df.date = pd.to_datetime(df.date)
df.set_index("date", inplace=True)
df.resample("M")["category_col"].value_counts(normalize=True).mul(100).plot(kind="bar")
查看下面的输出:
这就是我想要的:
【问题讨论】:
标签: python pandas dataframe matplotlib seaborn