Python 如何从按两列间隔分组的数据帧创建分组条形图

Python 如何从按两列间隔分组的数据帧创建分组条形图,python,pandas,plot,group-by,Python,Pandas,Plot,Group By,我将数据分为两列('a'和'b')。对于每一列,我都把它切成若干个箱子。 对于每个交叉的箱子,我希望得到'c'的总和。然后我想为'c'的总和创建一个分组图。但是,当我在分组数据之后使用.plot(kind='bar')时,这些条没有分组在一起 grouped = df.groupby([pd.cut(df['a'], [0, 1, 2, 3]), pd.cut(df['b'], [0, 101, 300, 500])]) grouped = grouped.c.sum() grouped.plo

我将数据分为两列(
'a'
'b'
)。对于每一列,我都把它切成若干个箱子。 对于每个交叉的箱子,我希望得到
'c'
的总和。然后我想为
'c'
的总和创建一个分组图。但是,当我在分组数据之后使用
.plot(kind='bar')
时,这些条没有分组在一起

grouped = df.groupby([pd.cut(df['a'], [0, 1, 2, 3]), pd.cut(df['b'], [0, 101, 300, 500])])
grouped = grouped.c.sum()
grouped.plot(kind='bar')

我希望图形按
'a'
分组,不同的颜色代表
'b'
。我试过
.unstack().plot(kind='bar')
;但是,它返回一个错误:

无法确定类型的下一个标签


给出以下示例数据

df = pd.DataFrame({'a': [8, 49, 81, 52, 22, 24, 32, 67, 24, 21, 78, 16, 86, 19, 4, 88, 4, 20, 20, 1],
                   'b': [2, 49, 49, 70, 31, 47, 98, 26, 55, 36, 17, 39, 56, 80, 52, 36, 42, 69, 73, 70],
                   'c': [22, 99, 31, 95, 16, 32, 81, 20, 58, 23, 53, 5, 0, 81, 8, 68, 16, 36, 35, 54]})
还有你的设置

grouped = df.groupby([pd.cut(df['a'], [16, 30, 67, 86]),
                      pd.cut(df['b'], [0, 26, 49, 100])])
grouped = grouped['c'].sum()
你有两个选择


    • 给出了以下示例数据

      df = pd.DataFrame({'a': [8, 49, 81, 52, 22, 24, 32, 67, 24, 21, 78, 16, 86, 19, 4, 88, 4, 20, 20, 1],
                         'b': [2, 49, 49, 70, 31, 47, 98, 26, 55, 36, 17, 39, 56, 80, 52, 36, 42, 69, 73, 70],
                         'c': [22, 99, 31, 95, 16, 32, 81, 20, 58, 23, 53, 5, 0, 81, 8, 68, 16, 36, 35, 54]})
      
      还有你的设置

      grouped = df.groupby([pd.cut(df['a'], [16, 30, 67, 86]),
                            pd.cut(df['b'], [0, 26, 49, 100])])
      grouped = grouped['c'].sum()
      
      你有两个选择