我想计算一个变量中类别的出现次数,并根据时间进行绘制。 数据如下:
Date_column Categorical_variable
20-01-2019 A
20-01-2019 B
20-01-2019 C
21-01-2019 A
21-02-2019 A
22-02-2019 B
........................
23-04-2020 A
我想证明在1月中我有1次B / C,而2次是A。在2月,我有1次A / B,依此类推。可以堆叠条形图以了解出现的总数。
我已经很接近了。但是还无法从中绘制情节。
df['Date_column'].groupby([df.Date_column.dt.year, df.Date_column.dt.month]).agg('count')
另一种方法是将日期更改为每月的1号,然后分组以对发生的次数进行计数。但是我无法从中绘制情节。
df.groupby(df['Date_column'], df['Categorical_variable']).count()
答案 0 :(得分:1)
将crosstab
与Series.dt.to_period
一起使用:
df['Date_column'] = pd.to_datetime(df['Date_column'])
df = pd.crosstab(df['Date_column'].dt.to_period('m'), df['Categorical_variable'])
df.plot.bar()