Pandas dataframe groupby plot(扩展)

2024-04-25 21:10:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想问一下“Plotting grouped data in same plot using Pandas”这篇文章的扩展名。当我们多次应用函数'groupby'时,这样的扩展就发挥作用了。具体来说,我对绘制这个函数感兴趣。我正在处理下面的线,它与函数图不兼容。在

线路:

f=s['Amount'].groupby([s['classe'],s['Month'],s['Year']]).sum()

其总和超过“金额”和“类别”、“月份”和“年份”组。为了简单起见,让“年”永远是相同的值:2017年。在

现在我想制作以下情节:

  • 为特定类型的“classe”绘制“月份与金额”

我的尝试:

^{pr2}$

其中租金代表上述特定的“等级”。这种尝试不起作用,也不考虑超过“金额”的总和。我不能将这样的'sum()'与函数图一起使用。显然,这些没有get_group('Rent')的行给我的绘图与类的数目一样多。他们还不算“数量”。有什么想法/建议吗?在

我还尝试使用pivot_table,如下面的代码所示。我可以把所有的都画在一起,但我不能画出一个类。我的尝试是:

test=pd.pivot_table(s,index=['classe','Month','Year'],values=['Amount'],aggfunc=np.sum)
test.unstack('classe').unstack('Year').plot(kind='area', figsize,[16,6],stacked=False,colormap='autumn').legend(loc=2,prop={'size':9}) 
plt.show() 

image

有什么想法/建议或好例子吗?我想了解如何从这些pivot_tablegroupby函数绘制我想要的任何内容。在


Tags: 函数plottable绘制金额amountyear建议
1条回答
网友
1楼 · 发布于 2024-04-25 21:10:18

考虑按当前pivot_tableunstack例程循环的每个唯一的进行过滤。下面用正数演示随机数据,这些数据应该总是通过定义的种子来重现:

import pandas as pd
import numpy as np
import random 
from matplotlib import pyplot as plt

np.random.seed(176)
random.seed(16)

df = pd.DataFrame({'classe': random.sample(list('ABCDE')*50, k=15),
                   'Amount': np.random.sample(15)*100,
                   'Year': random.sample(list(range(2010,2018))*50, k=15),
                   'Month': random.sample(list(range(1,12))*50, k=15)})

for cls in df['classe'].unique(): 
    # AREA GRAPH
    test = pd.pivot_table(df[df['classe']==cls], index=['classe', 'Month', 'Year'], values=['Amount'], aggfunc=np.sum)
    test.unstack('classe').unstack('Year').plot(kind='area', figsize=(16,6), stacked=False, colormap='autumn').legend(loc=2,prop={'size':9}) 

    # SCATTER PLOT
    test = pd.pivot_table(df[df['classe']==cls], index=['classe', 'Month', 'Year'], values=['Amount'], aggfunc=np.sum).reset_index()    
    test.plot(kind='scatter', x='Month',y='Amount', figsize=(16,6), stacked=False).legend(loc=2,prop={'size':9})
    plt.show() 

plt.clf()
plt.close()

区域图输出

Class A GraphClass B GraphClass C GraphClass D GraphClass E Graph

相关问题 更多 >