大佬教程收集整理的这篇文章主要介绍了将多选答案拆分到 Excel 或 Python 中的不同列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一列来自多选多项选择题的答案。像这样:
回答 |
---|
狗、猫、鸟 |
狗,鸟 |
狗,鱼 |
猫 |
我想将它们分成不同的列以进行可视化:
狗 | 猫 | 鸟 | 鱼 |
---|---|---|---|
1 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 |
我如何在 Excel 或 Python 中做到这一点?谢谢!
假设您使用的是熊猫和字符串答案:
>>> import pandas as pd
>>> lst = ['Dog,Cat,Bird','Dog,Fish','Cat']
>>> df = pd.DataFrame({'answer':lst})
>>> df
answer
0 Dog,Bird
1 Dog,Bird
2 Dog,Fish
3 Cat
您现在可以将每个字符串拆分为一个字符串列表,并检查每个答案是否在该列表中:
>>> df.answer = df.answer.str.split(',') # split Strings to list
>>> for word in ['Dog','Cat','Bird','Fish']:
... df[word] = df.answer.apply(lambda x : 1 if word in x else 0)
>>> df
answer Dog Cat Bird Fish
0 [Dog,Bird] 1 1 1 0
1 [Dog,Bird] 1 0 1 0
2 [Dog,Fish] 1 0 0 1
3 [Cat] 0 1 0 0
如果您在创建所有答案的唯一列表时遇到问题(例如,不同的答案太多),请使用集合:
>>> answer_set = set()
>>> for i in df.answer:
... answer_set.update(set(i))
>>> answer_list = list(answer_set)
>>> answer_list
['Fish','Dog']
,
[['Dog','Bird'],['Dog','Fish'],['Cat']]
一样。['Dog','Fish']
。visu['Dog'] = [1,1,0]
,依此类推。
answer = [['Dog',['Cat']]
choices = ['Dog','Fish']
visu = {}
for animal in choices:
visu[animal] = list(map(lambda x: animal in x,answer))
print(visu)
以上是大佬教程为你收集整理的将多选答案拆分到 Excel 或 Python 中的不同列全部内容,希望文章能够帮你解决将多选答案拆分到 Excel 或 Python 中的不同列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。