【问题标题】:matlib graphing every entry, want combined totals for each countrymatlib 绘制每个条目的图形,需要每个国家/地区的组合总数
【发布时间】:2018-12-14 14:58:19
【问题描述】:

为了得到这个 df,我已尽我所能:

df = pd.DataFrame({'nationality': ['united states', 'unknown', 'unknown', 'nigeria', 'nigeria', 'united states', 'nigeria', np.nan, 'france', 'nigeria', 'nigeria', 'nigeria'], 'worldcat_libcount': [128.0, 58.0, 17.0, 89.0, 295.0, 3.0, 71.0, np.nan, 26.0, 6.0, 8.0, 20.0]})
print (df)
      nationality  worldcat_libcount
0   united states              128.0
1         unknown               58.0
2         unknown               17.0
3         nigeria               89.0
4         nigeria              295.0
5   united states                3.0
6         nigeria               71.0
7             NaN                NaN
8          france               26.0
9         nigeria                6.0
10        nigeria                8.0
11        nigeria               20.0

进入显示每个国家/地区计数的图表。包含相同国家/地区的行应被视为相同的 x 值 - 但我不确定如何告诉 pandas 或 matplotlib。所以我得到一个看起来像这样的图表:

counting graph

任何关于我应该做什么的建议,以便尼日利亚不是多分,我们将不胜感激!

【问题讨论】:

  • 你需要bar情节吗?

标签: python pandas matplotlib plot pandas-groupby


【解决方案1】:

您需要使用groupbysum 聚合数据,然后按Series.plot.bar 绘制:

s = df.groupby('nationality')['worldcat_libcount'].sum()
s.plot.bar()

【讨论】:

  • 啊,好吧,很酷-感谢您的故障!我曾尝试在我使用 .groupby 的同一行添加 .plot ,但它失败了……我明白了,区分 Series 和 Dataframe 继续困扰着我的方法。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多