【问题标题】:Making a bar chart with object returned by pd.groupby.sum()使用 pd.groupby.sum() 返回的对象制作条形图
【发布时间】:2018-12-28 20:05:08
【问题描述】:

我正在尝试采用如下所示的 pandas 数据框(通过 groupby partnerid 创建):(仅包含更多行)

|---------------------|------------------|
|      partnerid      |                  |
|---------------------|------------------|
|          6          |      25153       |
|---------------------|------------------|
|          9          |      13370       |
|---------------------|------------------|
|         75          |       47         |
|---------------------|------------------|

并且想做条形图。

通常我会使用

df['partnerid'].value_counts().sort_index().plot.bar()

但我得到了错误

KeyError: 'partnerid'

或者我可以使用 Matplotlib,但我不知道如何引用未命名的列,并且在重命名它时,代码会运行但不会更改列名。

我认为可能是我试图用我正在使用的数据类型做非法的事情。

有人可以帮我理解来自 df.groupby.sum() 的数据类型以及如何将其更改为可以变成条形图的东西吗?

谢谢

【问题讨论】:

  • 如果您在'partnerid' 上使用groupby'partnerid' 可能是您的索引而不是列。这就是您收到KeyError 的原因。

标签: python python-3.x pandas matplotlib type-conversion


【解决方案1】:

可能这就是你在第一步中所做的,

df = df_initial.groupby(['partnerid']).sum()

那么,您的 df 似乎是一个 pd.Series 对象,因此您可以使用以下命令进行绘图

df.value_counts().sort_index().plot.bar()

【讨论】:

  • 谢谢!不过,我还有一个问题,如果有第二个索引,这将如何改变?例如每个partnerid的按日期分区
猜你喜欢
  • 2016-10-16
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多