У меня есть следующий фрейм данных -
FileName PageNo LineNo Name Class_par_ratio
17973375 - 1 TM000010 82 POWDERS MILK
17973375 - 1 TM000015 49 milk MILK
17973375 - 1 TM000015 49 Dairy OTHER FOODS
17973375 - 1 TM000016 11 Fat ANIMAL AND VEGETABLE OIL
17973375 - 1 TM000006 79 POWDER MILK
17973375 - 1 TM000016 9 Milk MILK
Я хочу сгруппировать выходные данные по FileName и Class_par_ratio, также я хочу найти частоту Class_par_ratio и поместить ее в столбец - частота, а затемЯ хочу найти максимальную частоту в другом столбце с именем «max freq».
Вывод будет выглядеть примерно так:
FileName Class_par_ratio Frequency Max_Class Max Freq.
17743633 - 1 OTHER FOODS 2 OTHER GOODS 4
OTHER GOODS 4
17743634 - 1 MEAT 12 MEAT 12
17743634 - 2 MEAT 1 MEAT 1
17743635 - 1 MEAT 83 MEAT 83
OTHER GOODS 2
17743642 - 1 MEAT 43 MEAT 43
OTHER GOODS 2
17743739 - 1 OTHER GOODS 3 OTHER GOODS 3
Фрагменты кодов, которые я пробовал до сих пор, -
1) df.groupby(['FileName'])['Class_par_ratio'].value_counts()
Вывод, который я получаю здесь: -
FileName Class_par_ratio
17743633 - 1 OTHER GOODS 8
17743634 - 1 MEAT AND LIVESTOCK 15
17743634 - 2 PETROLEUM 1
17743635 - 1 MEAT AND LIVESTOCK 87
Другой вывод -
2) coll_g = coll.groupby(['FileName', 'Class_par_ratio']).size().groupby(
['FileName', 'Class_par_ratio']).agg({'count': max})
coll_g = coll_g['count'].groupby(level=0, group_keys=False)
coll_g = coll_g.nlargest(1)
coll_g
Здесь я получаю класс, вхождение которогомаксимум, но я не получаю максимум.частота №Вывод, который я получаю -
17743754 - 1 MEAT & LIVESTOCK 1
17743759 - 1 ANIMAL AND VEGETABLE OIL 1
17743970 - 1 IRON ORE 1
17743996 - 1 OTHER GOODS 1
Я использую Pandas .20 и python 3.6.3
Можете ли вы, ребята, подсказать мне, где я ошибаюсь и каким должен быть мой код.