熊猫::如何根据每月总金额进行绘图

时间:2019-02-06 13:47:49

标签: pandas matplotlib

我制作了下面的数据框,其中有3家公司A,B和C。公司在2016年至2018年期间购买了一定数量的代金券。有些日子,例如。 A公司以$ 3000美元的价格购买了100件,而其他公司则没有购买。

我想看看这两家公司在过去两年中在代金券上的花费如何比较,所以我的想法是:

将每个公司每个月花费的所有资金相加,然后以条形图或仅以标准线的形式绘制-因此,三条线的颜色不同。 自从其2年的数据以来,x轴上大约有24个日期点

我尝试过类似的操作:plt.bar(A ['Datetime'],A ['PaidTotal']) 但是get:ufunc减去不能使用类型为dtype('

但这只是针对一家公司,而不是针对一张图中的所有3家公司 (我可以对这些日期进行排序,这没问题)

Company Name    PaidTotal   Datetime
585 CompanyA    218916.0    2016-10-14 10:51:07
586 CompanyB    430000.0    2017-01-23 11:05:08
591 CompanyB    546217.0    2016-09-26 14:20:00
592 CompanyC    73780.0     2016-12-07 07:52:01
593 CompanyA    132720.0    2016-10-04 16:14:10
595 CompanyC    52065.0     2016-11-12 14:32:40  

1 个答案:

答案 0 :(得分:0)

有关条形图,您可以致电df.groupby('Company Name')['PaidTotal'].sum().plot.bar()

enter image description here

要查看随时间变化的所有三种折线图,您可以尝试以下操作(轴是错误的,但这是总体思路):

sums = df.groupby(['Company Name', 'Datetime'])['PaidTotal'].sum().reset_index(level=0)
for company in sums['Company Name'].unique():
    sums[sums['Company Name'] == company]['PaidTotal'].plot();

enter image description here