Как заблокировать группировку python фреймов данных по более чем одному столбцу - PullRequest
1 голос
/ 20 июня 2020

Я развернул фрейм данных с 3 столбцами: Месяц, Клиенты и Количество. Я пытаюсь заблокировать эту группировку фреймов данных по месяцам и клиентам, соответственно, чтобы знать, сколько они торговали за эти месяцы.

Может кто-нибудь мне помочь? Я пробовал много способов, но не смог приблизиться ...

Ожидаемый сюжет: Ожидаемый участок

Исходный фрейм данных (только первые 10 строк)

Mes,Clientes,Mercadorias,Quantidade
Janeiro,Cliente A,DOL,834984
Janeiro,Cliente A,WDO,622107
Janeiro,Cliente A,IND,576051
Janeiro,Cliente A,WIN,326315
Janeiro,Cliente A,DI1,762236
Janeiro,Cliente B,DOL,696233
Janeiro,Cliente B,WDO,635564
Janeiro,Cliente B,IND,265720
Janeiro,Cliente B,WIN,550040
Janeiro,Cliente B,DI1,354343

Код, используемый для поворота фрейма данных:

df_2 = pd.pivot_table(df, index='Mes', columns='Clientes', aggfunc=sum)

Фрейм данных сводной таблицы:

Quantidade,Quantidade,Quantidade,Quantidade,Quantidade
Cliente A,Cliente B,Cliente C,Cliente D,Cliente E
1799492,1779077,3278442,2307922,3037275
2434961,2153050,2433302,2537541,1991130
3121693,2501900,1902067,2899094,2395038
2526271,2922299,2719685,3352454,2756570
2918910,3806007,2114714,2302343,2077582

Ответы [ 3 ]

1 голос
/ 20 июня 2020

Вам нужно нарезать фрейм данных, чтобы исключить верхний уровень заголовка столбца MultiIndex, используйте:

df_2['Quantidade'].plot.bar()

Вывод:

введите описание изображения здесь

Другой вариант - использовать параметр values в pivot_table, чтобы исключить создание заголовка столбца MultiIndex:

df_2 = pd.pivot_table(df, index='Mes', columns='Clientes', values='Quantidade', aggfunc=sum)

Вывод:

Clientes  Cliente A  Cliente B
Mes                           
Janeiro     3121693    2501900
1 голос
/ 20 июня 2020

Похоже, вы использовали df.pivot (), поэтому вы можете в основном сделать df.plot(kind='bar')

0 голосов
/ 20 июня 2020

Это будет двухэтапный процесс.

  1. Распакуйте ваш фрейм данных - следуйте этому примеру - Измените широкую форму на длинную в pandas

  2. Нарисуйте сгруппированный гистограмму с помощью matplotlib - следуйте этому примеру - https://chrisalbon.com/python/data_visualization/matplotlib_grouped_bar_plot/

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

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