Как можно нормализовать и построить эти данные? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь построить следующие данные в столбце с накоплением, но не знаю, как это сделать наилучшим образом.

У меня есть следующие данные:

**player**     **action**         **count**
player1        lost               15
               win                3
player2        lost               78
               win                61
               leave              6
                                  ..
player100      lost               43
               win                22
               leave              9
player101      lost               5
               leave              4

Это серия Pandas, поэтому в каждом атрибуте «игрок» могут быть соотнесены три различных действия [потерян, победа, уход], у некоторых игроков есть только одно из этих двух и трех других.

IЯ хотел бы нормализовать эти данные и построить график с разбитым столбцом, подобным этому.

Я получаю данные от

df_players = df.groupby('players')['action'].value_counts()

, поэтому на самом деле я не могу получить доступ к счетчику как к строке

enter image description here

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете разделить счет на сумму по уровню:

(df['count'].div(df.['count'].sum(level='player'))
            .mul(100)
            .unstack('action')
            .plot.barh(stacked=True)
)

Обновление из вашего комментария вы можете сделать:

(df.groupby('players')['action']
   .value_counts(normalize=True)
   .unstack('action')
   .plot.barh(stacked=True)
)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...