python - 如何在groupby之后绘制数据

标签 python pandas matplotlib

我有一个类似这样的数据框

import pandas as pd
df = pd.DataFrame([['1','3','1','2','3','1','2','2','1','1'], ['ONE','TWO','ONE','ONE','ONE','TWO','ONE','TWO','ONE','THREE']]).T
df.columns = [['age','data']]
print(df)   #printing dataframe.

我对其执行了 groupby 函数以获得所需的输出。

df['COUNTER'] =1       #initially, set that counter to 1.
group_data = df.groupby(['age','data'])['COUNTER'].sum() #sum function
print(group_data)

现在我想使用 matplot lib 绘制出来。请帮助我..我不知道如何开始和做什么。 我想使用计数器值和类似于条形图的东西来绘制

最佳答案

尝试:

group_data = group_data.reset_index()

为了摆脱 groupby() 为您创建的多重索引。

你的 print(group_data) 会给你这个:

In [24]: group_data = df.groupby(['age','data'])['COUNTER'].sum() #sum function

In [25]: print(group_data)
age  data 
1    ONE      3
     THREE    1
     TWO      1
2    ONE      2
     TWO      1
3    ONE      1
     TWO      1
Name: COUNTER, dtype: int64

然而,重置将“简化”新索引:

In [26]: group_data = group_data.reset_index()

In [27]: group_data
Out[27]: 
  age   data  COUNTER
0   1    ONE        3
1   1  THREE        1
2   1    TWO        1
3   2    ONE        2
4   2    TWO        1
5   3    ONE        1
6   3    TWO        1

然后根据您想要绘制的内容,您可能需要查看 Matplotlib docs

编辑

我现在更仔细地阅读了您想创建一个“条形”图表。

如果是这种情况,那么我会退后一步,对 groupby 结果使用 reset_index()。相反,试试这个:

In [46]: fig = group_data.plot.bar()

In [47]: fig.figure.show()

希望对你有帮助

关于python - 如何在groupby之后绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494246/

相关文章:

python - 在 Python 中使用 Matplotlib 制作 4 维散点图

python - undefined symbol : PyUnicodeUCS4_FromStringAndSize with tensorflow on heroku

python - Pandas :将多列绘制为相同的 x 值

python - matplotlib 调整颜色条

python - 如何使用 Panda 将 JSON 字符串中的所有元素输出到表中

python pandas 右填充值

Python matplotlib 给文本添加超链接

找不到 Python pip 安装模块。如何将python链接到pip位置?

pandas - 如何计算列表数据的计数和首次出现?

python - 如何在 Pandas 数据系列上绘制任意标记?