熊猫链式方法根据年份绘制类别计数

时间:2019-01-01 21:08:14

标签: python pandas

我有一个这样的数据框:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

df = pd.DataFrame({'Year': [1901,1901,1902,1902], 'Category': list('ABCC'), 'Shared': [1,1,2,2]})

我喜欢获取基于年份的类别计数。 到目前为止,我已经做到了:

new_df = df.groupby(['Year','Category']).count().unstack()
new_df.columns = new_df.columns.droplevel()
new_df.reset_index().drop('Year',axis=1).sum().plot.bar()

这很好用,并给出了情节:

是否可以使用链接的命令获得相同的结果?

例如:

(df.groupby(['Year','Category'])
.count()
.unstack()
.droplevel()
.reset_index()
.drop('Year',axis=1)
.sum().plot.bar())

1 个答案:

答案 0 :(得分:1)

我得到了非常简单的答案。

df['Category'].value_counts().plot.bar()

还要感谢Scott Boston设计替代解决方案:

df['Category'].value_counts().sort_index().plot.bar()
df.groupby('Category')['Shared'].count().plot.bar()
df.groupby(['Year','Category'])['Shared'].count().sum(level=1).plot.bar()