Предположим, я создаю следующую фреймворк данных с df.set_index ('Class', 'subclass'), имея в виду, что существует несколько классов с подклассами ... A> Z. неПодведение итогов в виде мультииндекса pandas DataFrame
Class subclass
A a
A b
A c
A d
B a
B b
Как бы я рассчитывать подклассы в классе и создать отдельный столбец с именем не классов, таких, что я могу видеть класс с наибольшим количеством подклассов? Я думал о каком-то цикле, который пробегает буквы класса и подсчитывает подкласс, если это письмо класса все равно. Однако для такой проблемы это кажется немного противоречивым. Будет ли более простой подход, например, df.groupby [] count?
Нужный результат будет:
Class subclass No. of classes
A a 4
A b
A c
A d
B a 2
B b
Я попытался параметр уровня, как показано на group multi-index pandas dataframe, но это не похоже на работу для меня
EDIT:
я не сделал что я хотел вернуть класс с наибольшим количеством подклассов. Я достиг этого с:
df.reset_index().groupby('Class')['subclass'].nunique().idxmax()
IIUC вы можете сделать 'ФР [ 'Нет. классов '] = df.groupby (' Class ') [' subclass ']. transform (' count ') ' – EdChum
Вам нужны пустые значения в' Нет. классов?? – jezrael
Мне нужен был возврат класса с наибольшим количеством подклассов. После большего поиска я написал следующее: 'df.reset_index(). Groupby (' Class ') [' subclass ']. Nunique(). Idxmax()', который работал. – Joey