Как сделать так, чтобы группы в определенном столбце появлялись, когда для объединения используется метод groupby? - PullRequest
0 голосов
/ 30 января 2019
x=df.groupby(['id_gamer'])[['sucess', 'nb_games']].shift(periods=1).cumsum()
                            .apply(lambda row: row.sucess/row.nb_games, axis=1)

В приведенном выше коде я делаю groupby на pandas.DataFrame, чтобы получить смещенный столбец результатов, представленных в виде соотношения, для каждого игрока и каждой игры.Фактически его показатель успеха, учитывая количество игр, в которые он играл.

Возвращает объект pandas.core.series.Series как:

+---------------+----------------+
|     Index     | Computed_ratio |
+---------------+----------------+
| id_game_date  | NaN            |
| id_game2_date | 0.30           |
| id_game3_date | 0.40           |
| id_game_date  | NaN            |
| id_game4_date | 0.50           |
| ...           | ...            |
+---------------+----------------+

Таким образом, вы можете увидеть NaN как разделение междугеймеры.Как вы можете видеть, первый и второй игроки встретились в одной игре: id_game_date.И именно поэтому я бы предпочел, чтобы столбец gamer из id_gamer появился, чтобы объединить его с фреймом данных, из которого получены данные.

Если честно, у меня есть идея решения: просто не используйтеid игр в качестве индекса, тогда каждая строка будет проиндексирована правильно, и я не думаю, что при слиянии возникнет конфликт.Но я хотел бы знать, возможно ли это с этим текущим шаблоном, показанным здесь.

Примечание: я уже пробовал с решениями, представленными в этой теме 1019 *.Но ничего из этого не работает, конечно, потому что показанные функции являются агрегатами, а не моими: cumsum ().Если я использовал функцию агрегирования, такую ​​как sum () (с другим шаблоном кода, не пытайтесь использовать тот, который я вам дал, или он вернет ошибку), появится id_gamer.Но это не соответствует моим ожиданиям.

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