Сводная таблица в pandas без аггрегации
У меня есть датафрейм:
df = pd.DataFrame({'user_id' : [44, 44, 998, 998, 998],
'content': ['course_1', 'course_2', 'course_1', 'course_2', 'course_3'],
'status': ['progress', 'done', 'progress', 'done', 'no_access'],
'date_begin': ['2020-12-18', '2020-11-13', '2020-11-13', '2021-02-25', 'NaN']
})
print(df)
user_id content status date_begin
0 44 course_1 progress 2020-12-18
1 44 course_2 done 2020-11-13
2 998 course_1 progress 2020-11-13
3 998 course_2 done 2021-02-25
4 998 course_3 no_access NaN
Мне необходимо сгруппировать таблицу таким образом, чтобы получилось следующее:
user_id course_1 date_begin_(course_1) course_2 date_begin_(course_2) \
0 44 progress 2020-12-18 done 2020-11-13
1 998 progress 2020-11-13 done 2021-02-25
course_3 date_begin_(course_3)
0 NaN NaN
1 no_access NaN
Пока я придумал только метод pivot
df.pivot(index='user_id', columns='content', values=['status', 'date_begin'])
который даёт следующий результат:
status date_begin
content course_1 course_2 course_3 course_1 course_2 course_3
user_id
44 progress done NaN 2020-12-18 2020-11-13 NaN
998 progress done no_access 2020-11-13 2021-02-25 NaN
Результат близок к тому, который мне нужен, но мне нужно 1) поменять порядок столбцов и 2) переименовать столбцы "data_begin" в "data_begin (название курса)".
Прошу знающих людей подсказать.
Источник: Stack Overflow на русском