У меня есть фрейм данных, который имеет dtype=object
, то есть категориальные переменные, для которых я хотел бы иметь счет каждого уровня. Я хотел бы, чтобы результат был довольно кратким изложением всех категориальных переменных.
Для достижения вышеупомянутых целей я попробовал следующее:
(строка 1) захватить имена всех переменных типа объекта
(строка 2) подсчитывает количество наблюдений для каждого уровня (a
, b
из v1
)
(строка 3) переименуйте столбец, чтобы он читал "count"
stringCol = list(df.select_dtypes(include=['object'])) # list object of categorical variables
a = df.groupby(stringCol[0]).agg({stringCol[0]: 'count'})
a = a.rename(index=str, columns={stringCol[0]: 'count'}); a
count
v1
a 1279
b 2382
Я не уверен, как изящно получить следующий результат, в котором печатаются все строки столбцов. Как и в этом случае (показаны только v1
и v4
, но должны быть в состоянии печатать такие результаты для переменного числа столбцов):
count count
v1 v4
a 1279 l 32
b 2382 u 3055
y 549
Вот как я могу это сделать:
- выберите один элемент из
stringCol
- рассчитать количество для каждой группы столбца.
- сохранить результат в кадре данных Pandas.
- сохранить фрейм данных Pandas в объекте (список?)
- повтор
- если последний элемент из
stringCol
выполнен, разбить.
но должен быть лучший способ, просто не уверен, как это сделать.