我已经对qualtrics和Google对熊猫的表单调查做了一些分析。
一些问题的格式:
您喜欢蛋糕的什么? (根据需要选择任意数量)
在两个系统中,它们都产生一个看起来像这样的列:
| 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]