Python:创建一个图表,显示每个部门在一段时间内的部门支出:



我是python的新手,但在将正确的信息放入图中时遇到了问题。

有几个不同的部门在一年中都有不同的付款发票。我希望能够将它们分组,这样我就可以在方框图中看到每个部门每个月的发票总额。

我目前可以得到一年中该部门每月收到发票的次数,但我想要的是金额,而不是频率

这是我迄今为止的代码

df['Udstedelsesdato'] = pd.to_datetime(df['Udstedelsesdato'])
df = df[(df['Udstedelsesdato'].dt.year == 2019)]
df = df[df.OrganisationNiveau3 != 'Direktionen , Fælles område'] 
df = df[df.OrganisationNiveau3 != 'Kommunaldirektørens Stabe']
df = df[df.OrganisationNiveau3 != 'Kultur og Erhverv']
df = df[df.OrganisationNiveau3 != 'Økonomi']
plot_df = (
df.groupby([pd.Grouper(key='Udstedelsesdato',freq='M'), 'OrganisationNiveau3'])
.size()
.reset_index(name='count')
.pivot(index='Udstedelsesdato', columns='OrganisationNiveau3', values='count')
)
# Plot Bar
ax = plot_df.plot(kind='bar', rot=0, ylabel='Frequency', xlabel =' Months')
# Format X-axis ticks
ax.xaxis.set_major_formatter(
ticker.FixedFormatter(plot_df.index.strftime('%d-%m'))
)
plt.rcParams.update({'font.size': 40})
plt.rcParams["figure.figsize"]=(50,50)
plt.show()]

它看起来是这样的:带频率

以及我想要的外观:带金额

这就是我的数据集的样子:数据集

为了简单起见,我也对20多列中的一些列进行了排序。。。

Udstedelsedato是发票日期

Beløb是发票金额

组织创新3是部门

数据:

date    Organisation    amount  ID
21-01-2019  a   80,00    1
24-11-2019  b   4.000,00    2
24-03-2019  c   2.250,00    3
21-01-2019  d   3.000,00    4
21-04-2019  e   298,00  5
24-12-2019  a   564,38  6
24-05-2019  b   157,50  7
24-06-2019  c   157,50  8
24-07-2019  d   48,00   9
24-08-2019  e   280,00  10
24-09-2019  a   199,00  11
28-10-2019  b   75,20   12

如果你想要发票的总和,那么不要放sum((:

plot_df = (
df.groupby([pd.Grouper(key='Udstedelsesdato',freq='M'), 'OrganisationNiveau3'])
**.sum()**
.reset_index(name='count')
.pivot(index='Udstedelsesdato', columns='OrganisationNiveau3', values='sum')

如果在分组时使用.size((,则基本上可以获得分组元素的计数。这就是为什么当你想得到总和时,你需要加上元素的总和。

相关内容

最新更新