为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 计算所有分类变量的值

使用 Python 计算所有分类变量的值

郎朗坤 2022-05-24 17:14:13
我有一个包含大量列的数据集,如何计算 Python 中所有分类变量的值的频率?我不想要一两个特定列的频率,而是我需要所有变量的频率type="category"。
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

使用selected_dtypes()选择带有 的列type=category,并使用sum()方法计算频率:


df.select_dtypes(include='category').sum()

输出:


col_cat1     9

col_cat2    21


查看完整回答
反对 回复 2022-05-24
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

不完全确定我明白你的意思,但如果你只是想保持频率的连续计数,字典是一个很好的方法。


例如,如果我们使用虚拟数据 ['A', 'A', 'B', 'A', 'C', 'C']


category_counts = {}


for category in categories:

    try:

        category_counts[category] += 1

    except:

        category_counts[category] = 1

打印(类别计数)


返回:


{'A':3,'B':1,'C':2}


编辑:因此,如果您想要计算每列的类别,则代码仅会稍微更改为:


table = [['Male/Female','M','M','F','M',"F"],['Age','10-20','30-40','10-20','20-30','10-20']]


category_counts = {}


for column in table:

    category_counts[column[0]] = {}

    for data in column[1:]:

        try:

            category_counts[column[0]][data] += 1

        except:

            category_counts[column[0]][data] = 1


print(category_counts)

哪个打印:


{'男/女':{'M':3,'F':2},'年龄':{'10-20':3,'30-40':1,'20-30':1} }


但我不确定您当前如何存储数据


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号