Панды :: Как строить график на основе суммы суммы каждый месяц - PullRequest
0 голосов
/ 06 февраля 2019

Я сделал фрейм данных, показанный ниже, в котором 3 компании A, B и C. Компании покупают определенное количество ваучеров в период с 2016 по 2018 годы.Например, несколько днейКомпания А покупает 100 штук за 3000 долларов, в другие дни ни одна компания не покупает их.

Мне бы хотелось узнать, как эти три компании сравниваются за последние два года, когда речь идет о деньгах, потраченных на ваучеры, поэтому мои идеи были следующими:

Суммируйте все деньги, потраченные каждый месяц на каждую компанию, и нанесите их на гистограмму или просто стандартную линию - так, три линии каждая с разным цветом.С момента его данных за 2 года на оси х будет примерно 24 точки даты

Я пробовал что-то вроде: plt.bar (A ['Datetime'], A ['PaidTotal']), но получаю: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 голосов
/ 06 февраля 2019

Для гистограммы вы можете позвонить 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...