首页 > 解决方案 > 是否有一种处理列中多个值的熊猫方式?

问题描述

我一直在用 Pandas 对qualtrics和 Google 表单调查进行一些分析。

一些问题的格式如下:


你喜欢蛋糕的什么?(根据需要选择多个)


在这两个系统中,它们都会生成一个如下所示的列:

| cake  | ramen  |
|  1, 3, 4| love     |
|  1      | hate     |
|  3, 4   | love     |

等等。这两个系统都会自动生成响应条形图,但它们很难使用。

过去我通过将它们分成额外的列来完成它,或者只是动态处理所有内容并为特定图形构建临时数据框。

有没有更优雅的方法来处理这样的列?特别是这样我就可以做蛋糕感觉的堆积条形图,按他们对拉面的感觉来分解(例如)

标签: pythonpandaspandas-groupbygoogle-formsqualtrics

解决方案


大多数类似问题的解决方案都需要创建一个新的数据框。示例:Pandas 列表列,为每个列表元素创建一行

如果您不想这样做 - 只需解压缩列表即可。需要一个函数来处理不均匀的列表深度:

tolist  = lambda a: a if type(a)==list else [a] 
[a for b in df['cake'].values for a in tolist(b)]

[1、3、4、2、3、4]


推荐阅读