程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将多选答案拆分到 Excel 或 Python 中的不同列大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将多选答案拆分到 Excel 或 Python 中的不同列?

开发过程中遇到将多选答案拆分到 Excel 或 Python 中的不同列的问题如何解决?下面主要结合日常开发的经验,给出你关于将多选答案拆分到 Excel 或 Python 中的不同列的解决方法建议,希望对你解决将多选答案拆分到 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']
,
  1. 您的列是列表列表,就像[['Dog','Bird'],['Dog','Fish'],['Cat']]一样。
  2. 您有预定义的选择数量,这也是一个列表。假设['Dog','Fish']
  3. 最终可视化的每一列也是一个列表但有一个与之相关的(动物),可以表示为一个Dict。例如,第一列是 visu['Dog'] = [1,1,0],依此类推。
  4. 因此,您可以遍历您的选择列表,并检查您的答案的每个列表中是否存在每种动物 列表。您可以想象这是必要的 2 个循环。下面的几行会给你一个很大的线索,但不是最终的答案。它使用 for 循环和内置的 @H_219_113@map 函数,该函数具有隐式循环。
answer = [['Dog',['Cat']]
choices = ['Dog','Fish']

visu = {}
for animal in choices:
    visu[animal] = list(map(lambda x: animal in x,answer))

print(visu)
  1. 我建议你查看一些 Python 教程和定义,主要是我用斜体格式化的术语。

大佬总结

以上是大佬教程为你收集整理的将多选答案拆分到 Excel 或 Python 中的不同列全部内容,希望文章能够帮你解决将多选答案拆分到 Excel 或 Python 中的不同列所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。