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

大熊猫分组两栏和绘图

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

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

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    df = pd.DataFrame({'category': list('XYZXY'), 'B': range(5,10),'sex': list('mfmff')})
    

    我想根据“类别”栏中的类别绘制性别的数量。

    我试过:
    df.groupby(['category','sex'])['category','sex'].count().plot.bar()

    但这给了我们: enter image description here

    如何获取每个类别的性数量?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Vaishali    7 年前

    IIUC

    df.groupby(['category','sex']).B.count().unstack().reset_index()\
    .plot.bar(x = 'category', y = ['f', 'm'])
    

    enter image description here

    编辑:如果有多个列,可以使用GroupBy、Count和DropLevel。

    new_df = df.groupby(['category','sex']).count().unstack()
    new_df.columns = new_df.columns.droplevel()
    new_df.reset_index().plot.bar()