是否有一种 pandaic 方法来处理列中的多个值?

Is there a pandaic way to handle multiple values in column?

我一直在用 Pandas.

qualtrics 和 Google 表格调查进行一些分析

一些问题的格式是:


你喜欢什么蛋糕? (select 你需要多少就多少)


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

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

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

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

有没有更优雅的方法来处理这样的列?特别是这样我就可以制作蛋糕感受的堆叠条形图,根据他们对拉面的感受进行分解(例如)

大多数类似问题的解决方案都需要创建一个新的数据框。示例:Pandas column of lists, create a row for each list element

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

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]