我有一个DF:
NAME V ID
name1 0 424
name2 0 123
name3 1 241
并列出:
list1 = ['name1', 'name4']
如果名称在列表中,我如何以最佳方式将 df 中的 V 替换为 1。 示例输出:
NAME V ID
name1 1 424
name2 0 123
name3 1 241
我尝试在 for 循环中执行此操作,但对于具有 60k+ 记录的 df 而言,这不是最佳方式,因此我尝试寻找其他选项,但我发现了类似这样的内容:
df.NAME[[x for x in range(len(df)) if x in list1]] = 1
但我认为这不是最好的方法,因为它仍然是 for 循环。
请您参考如下方法:
我会使用,顺便说一句,不要将您的 list 命名为 'list'
df.loc[df.NAME.isin(['name1', 'name4']),'V']=1
df
NAME V ID
0 name1 1 424
1 name2 0 123
2 name3 1 241
