GroupBy показывается как особая линия на графике - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь создать график, показывающий прибыль с течением времени через фрейм данных панд. Вот шаги, которые я предпринял:

profit_data=agg_data.groupby(['segment','yyyy_mm_dd'])[["profit"]].sum()
profit_data

Это дает мне фрейм данных, подобный приведенному ниже:

                        profit
segment    yyyy_mm_dd   
Core       2019-06-01   100
           2019-06-02   100
           2019-06-03   100
           2019-06-04   100
           2019-06-05   100
NonCore    2019-06-07   100
           2019-06-08   100
           2019-06-09   100
           2019-06-10   100
...
...

Затем я пытаюсь построить это, используя matplotlib:

profit_data.plot()

Вышеприведенное действительно создает график, однако мои сегменты представляют собой одну непрерывную линию, а не две разные линии (по одной для каждого сегмента). Какое изменение мне нужно сделать, чтобы каждый сегмент был нанесен на график?

1 Ответ

1 голос
/ 24 октября 2019

Ваш выходной фрейм данных - это только один столбец, поэтому на графике отображается только один столбец.

Чтобы решить эту проблему, вам нужно изменить форму вашего фрейма данных на два столбца - по одному для каждого сегмента:

df_unstacked = df.unstack(level="segment")

Кроме того, вы можете выбрать, какие индексы наносить на график и наносить на график дважды:

df.loc["Core"].plot(label="Core")
df.loc["NonCore"].plot(label="NonCore")

Надеюсь, это поможет!

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