【发布时间】:2018-12-09 05:49:07
【问题描述】:
我有一个包含dtype=object 的数据框,即分类变量,我想知道每个级别的计数。我希望结果是所有分类变量的漂亮总结。
为了实现上述目标,我尝试了以下方法:
(第 1 行)获取所有对象类型变量的名称
(第 2 行)计算每个级别的观察次数(a、b of 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的最后一个元素完成,则中断。
但一定有比这更好的方法,只是不知道该怎么做。
【问题讨论】: