在单列中按多年分组并绘制堆叠结果

时间:2018-12-05 02:36:11

标签: python pandas dataframe matplotlib

我有一个看起来像这样的数据框,默认的熊猫索引从0开始:

  window.resolveLocalFileSystemURL(
    window.cordova.file.applicationDirectory + 'www/' + file, fileEntry => 
      fileEntry.file(file => {
        const reader = new FileReader()

        reader.onloadend = function(e) {
          window.webserver.sendResponse(
            requestId,
            {
              status: 200,
              body: this.result,
              headers: {
                'Content-Type': file.type,
              },
            }
          )
        }
        reader.readAsText(file)
      })
  )

我想创建此数据的堆积条形图。 但是,使用df.groupby()函数将只允许我对此数据调用诸如.mean()或.count()之类的函数,以便按年份绘制数据。我得到以下结果,该结果将每个数据点分开,并且不按共享年份将它们分组。

enter image description here 我已经看到了用于堆积条形图的matplotlib示例,但它们是按公用索引分组的,在这种情况下,我没有要绘制的公用索引。有没有一种方法可以在不重新排列整个数据帧的情况下对数据进行分组和绘制?

1 个答案:

答案 0 :(得分:3)

如果我对您的理解正确,则可以先使用pivot进行此操作:

df1 = pd.pivot_table(df, values='Count', index='Year', columns='Name')
df1.plot(kind='bar')

输出:

enter image description here 或带有参数stacked=True

df1.plot(kind='bar', stacked=True)

enter image description here