python - 将列表与列进行比较并操作单元格
问题描述
我有一个名为 list_uid 的列表,它都是整数。我想将它与使用 if 和 for 循环的名为“UID”的工作表列进行比较。如果是真的,那么在工作表上的列“已完成?” 将更新为“Y”。我怎么能做到这一点?我尝试了脚本,但结果发现整个专栏都充满了“Y”
for uid in list_uid:
if uid in general['UID'].values:
general['Complete'] = yes
else:
general['Complete'] = no
解决方案
您可以使用numpy.where
布尔掩码:
general['Complete'] = np.where(general['UID'].isin(list_uid), 'yes', 'no')
或者,您可以通过映射字典映射布尔系列:
d = {True: 'yes', False: 'no'}
general['Complete'] = general['UID'].isin(list_uid).map(d)
推荐阅读
- sql - T-SQL 左外连接选择前 1 - MAX
- module - 基于循环(子)模块依赖实现宏
- python - Python:无法从 FileStorage 对象读取
- node.js - 当我添加钩子以请求发出时,NodeJS response.on('data') 不会触发
- javascript - 悬停后显示图像,而不是单击
- php - 如何访问下一个数据?
- python-3.x - python删除异常值,过滤并取平均值
- wpf - TestStack.White 点击 MahApps Hamburger 菜单项
- ios - ViewController 将 Swift 从一个 VC 推送到另一个 VC 并返回
- image - Kubernetes 如何从外部存储库中提取图像?图像存储在哪里?