我是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((,则基本上可以获得分组元素的计数。这就是为什么当你想得到总和时,你需要加上元素的总和。