Объединить строки с одинаковыми значениями Pandas - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть pandas кадр данных следующим образом:

enter image description here

Здесь вы заметите, что есть много строк с одинаковой комбинацией code_module,code_presentation,id_student То, что я хочу сделать, это объединить все эти дублирующиеся строки и таким образом суммировать sum_clicks с каждой группой

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

         code_module code_presentation  id_student  sum_click
0                AAA             2013J       28400          18

В терминах SQL закрытый ключ должен представлять собой комбинацию code_module,code_presentation,id_student

В своем прогрессе я попытался использовать groupby следующим образом:

groupby(['id_student','code_presentation','code_module']).aggregate({'sum_click': 'sum',})

Но это не сработало, так как дало студенческие идентификаторы, которых даже нет в моем наборе данных, и я не понимаю, почему

Кроме того, похоже, что groupby не совсем то, что нужно Я ищу, так как он имеет структуру данных, отличную от стандартного pandas кадра данных, который я бы искал.

Проблема может быть замечена в следующем выводе

                                        sum_click
id_student code_presentation code_module           
6516       2014J             AAA               2791
8462       2013J             DDD                646
          2014J             DDD                 10
11391      2013J             AAA                934

Строки 1 и 2 (индексирование от 0) должны быть отдельными строками, а не группой, как они есть * 1 028 *

1 Ответ

1 голос
/ 23 февраля 2020

Попробуйте это -

df.groupby(['code_module', 'code_presentation', 'id_student']).agg(sum_clicks=('sum_click', 'sum')).reset_index()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...