У меня есть следующие DataFrame:группа по панд в DataFrame
email cat class_price
0 [email protected] cat1 1
1 [email protected] cat2 2
2 [email protected] cat2 4
3 [email protected] cat2 4
4 [email protected] cat2 1
5 [email protected] cat1 3
6 [email protected] cat1 2
7 [email protected] cat2 1
8 [email protected] cat2 4
9 [email protected] cat2 2
10 [email protected] cat3 1
11 [email protected] cat1 1
И я хочу, чтобы группы по электронной почте и по class_price, для каждой строки я хочу взять максимум из class_price.
Я использую:
test_df2 = test_df.groupby(['email','cat'])['class_price'].max()
Выход:
email cat
[email protected] cat1 2
cat2 4
[email protected] cat2 2
cat3 1
[email protected] cat1 3
cat2 4
Но как я могу получить результат, похожий на SQL группе по? то есть:
email cat1 cat2 cat3
[email protected] 2 4 0
[email protected] 0 2 1
[email protected] 3 4 0
[Это не очень важно, но ваш примерный вывод несовместим с вашим примером ввода - нет 'cat3'. Несколько секунд озадачил меня.] – DSM
true, я редактирую @DSM – woshitom