python - 如何从包含数字列表的熊猫单元格中检索特定元素
问题描述
假设我有一个这样的数据框:
df
cars places
0 [10, 20, 30, 40] [0, 0, 0, 3]
1 [10, 20, 30, 40, 50, 60] [0, 0, 1, 2, 3, 5]
2 [10, 20] [0, 1]
我想创建第三列,其中仅包含与 column"cars"
中的数字相对应的0
column元素places
。因此,期望的输出是
cars places stolen
0 [10, 20, 30, 40] [0, 0, 0, 3] [10, 20, 30]
1 [10, 20, 30, 40, 50, 60] [0, 0, 1, 2, 3, 5] [10, 20]
2 [10, 20] [0, 1] [10]
执行此操作的最流畅的方法是什么?
解决方案
您可以使用应用功能
df['stolen'] = df.apply(lambda x: [x['cars'][i] for i, j in enumerate(x['places']) if j==0], axis=1)
输出
cars places stolen
0 [10, 20, 30, 40] [0, 0, 0, 3] [10, 20, 30]
1 [10, 20, 30, 40, 50, 60] [0, 0, 1, 2, 3, 5] [10, 20]
2 [10, 20] [0, 1] [10]
推荐阅读
- laravel - Laravel 6:文件夹内的命名路由没有获取用户对象
- reactjs - Formik 两种形式之间的错误初始值
- c# - Windows 10 最大路径长度限制
- php - Laravel/Eloquent 强制执行 findOrFail 和 safeOrFail
- c++ - 班级中的渐进数字
- flutter - 如何在飞镖中拥有一个时间不断变化的计时器?
- c++ - 抽象类和构造函数
- java - 错误:“Context.startForegroundService() 没有调用 Service.startForeground()”
- javascript - 有没有办法将谷歌脚本代码打包为谷歌表格的插件?
- android - 如何从我的应用程序向 Whatsapp 发送联系信息?