是否有一种 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]
我一直在用 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]