本文主要是介绍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+=1elif '看病难,看病贵'in i:kbnkbg+=1elif '工作不稳定,可能下岗失业' in i:gzbwd+=1elif '当前技术技能水平跟不上企业转型发展需求' in i:jsgbs+=1elif '老人赡养问题' in i:lrsy+=1elif '住房问题' in i:zfwt+=1elif '养老保障' in i:ylbz+=1elif '子女教育' in i:znjy+=1else:qita.append(i)if len(i) !=1:for a in i:if '生活成本上升'in a:shcbss+=1elif '看病难,看病贵'in a:kbnkbg+=1elif '工作不稳定,可能下岗失业' in a:gzbwd+=1elif '当前技术技能水平跟不上企业转型发展需求' in a:jsgbs+=1elif '老人赡养问题' in a:lrsy+=1elif '住房问题' in a:zfwt+=1elif '养老保障' in a:ylbz+=1elif '子女教育' in a:znjy+=1else: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份记录
这篇关于pandas处理问卷多选题【循环遍历】python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!