代码之家  ›  专栏  ›  技术社区  ›  astro123

大熊猫以年为单位绘制分类计数的连锁方法

  •  0
  • astro123  · 技术社区  · 7 年前

    我有一个这样的数据框架:

    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 回复  |  直到 7 年前
        1
  •  1
  •   astro123    7 年前

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

    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()