pandas处理问卷多选题【循环遍历】python

业务需求,社科调查问卷有一列是多选项
如图
在这里插入图片描述

代码分割,这里是换行符(\n)
在这里插入图片描述
统计各值比例

list=[x for x in df1['37. 您当前最关注且迫切需要解决的问题有 [多选题]'].str.split('\n')]

shcbss=0  # 生活成本上升
kbnkbg=0   # 看病难,看病贵
gzbwd=0   # 工作不稳定,可能下岗失业
jsgbs=0  # 当前技术技能水平跟不上企业转型发展需求
lrsy=0   # 老人赡养问题
zfwt=0   # 住房问题
ylbz=0    # 养老保障
znjy=0    # 子女教育
qita=[]
for i in list:
    if len(i)==1:
        if '生活成本上升'in i:
            shcbss+=1
        elif '看病难,看病贵'in i:
            kbnkbg+=1
        elif '工作不稳定,可能下岗失业' in i:
            gzbwd+=1
        elif '当前技术技能水平跟不上企业转型发展需求' in i:
            jsgbs+=1
        elif '老人赡养问题' in i:
            lrsy+=1
        elif '住房问题' in i:
            zfwt+=1
        elif '养老保障' in i:
            ylbz+=1
        elif '子女教育' in i:
            znjy+=1
        else:
            qita.append(i)
    if len(i) !=1:
        for a in i:
            if '生活成本上升'in a:
                shcbss+=1
            elif '看病难,看病贵'in a:
                kbnkbg+=1
            elif '工作不稳定,可能下岗失业' in a:
                gzbwd+=1
            elif '当前技术技能水平跟不上企业转型发展需求' in a:
                jsgbs+=1
            elif '老人赡养问题' in a:
                lrsy+=1
            elif '住房问题' in a:
                zfwt+=1
            elif '养老保障' in a:
                ylbz+=1
            elif '子女教育' in a:
                znjy+=1
            else:
                qita.append(a)
print('生活成本上升',shcbss,'比例: {:.2%}'.format(shcbss/11840))
print('看病难,看病贵',kbnkbg,'比例: {:.2%}'.format(kbnkbg/11840))
print('工作不稳定,可能下岗失业',gzbwd,'比例: {:.2%}'.format(gzbwd/11840))
print('当前技术技能水平跟不上企业转型发展需求',jsgbs,'比例: {:.2%}'.format(jsgbs/11840))
print('老人赡养问题',lrsy,'比例: {:.2%}'.format(lrsy/11840))
print('住房问题',zfwt,'比例: {:.2%}'.format(zfwt/11840))
print('养老保障',ylbz,'比例: {:.2%}'.format(ylbz/11840))
print('子女教育',znjy,'比例: {:.2%}'.format(znjy/11840))
print('-------------------------------------------------------')
print('其他',qita)

这里除以11840是因为该问卷一共有11840份记录
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值