python - 是否有一种处理列中多个值的熊猫方式?
问题描述
我一直在用 Pandas 对qualtrics和 Google 表单调查进行一些分析。
一些问题的格式如下:
你喜欢蛋糕的什么?(根据需要选择多个)
- 这很美味
- 刨冰
- 鲜艳的色彩
- 一切
在这两个系统中,它们都会生成一个如下所示的列:
| cake | ramen |
| 1, 3, 4| love |
| 1 | hate |
| 3, 4 | love |
等等。这两个系统都会自动生成响应条形图,但它们很难使用。
过去我通过将它们分成额外的列来完成它,或者只是动态处理所有内容并为特定图形构建临时数据框。
有没有更优雅的方法来处理这样的列?特别是这样我就可以做蛋糕感觉的堆积条形图,按他们对拉面的感觉来分解(例如)
解决方案
大多数类似问题的解决方案都需要创建一个新的数据框。示例: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]
推荐阅读
- annotations - 如何添加比例尺而不在 dm-script 中显示图像
- reactjs - 如何自定义材质底部标签?
- sapui5 - 共享库中的每个 XML 片段文件都使用单独的 HTTP 调用加载,而不是使用预加载文件的内容
- react-native - 要计算在所需时间传递给子组件的值?
- permissions - WSL+samba+git:“错误:将对象添加到存储库数据库.git/objects的权限不足” / git-clone / git-add 权限错误
- c++ - 如何使用带有“外部”键的 std::unordered_map
- python - Python - 服务器运行
- angularjs - ng-init 在 ng-repeat 中使用了两次,只有第一个 ng-init 被评估
- java - 如何在Spring中通过json将参数从表单发送到控制器
- html - 增加滚动标题的不透明度