首页 > 解决方案 > 将列表与列进行比较并操作单元格

问题描述

我有一个名为 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

标签: pythonpandas

解决方案


您可以使用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)

推荐阅读