我有一个这样的数据框:
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())
答案 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()