Skip to main content
 首页 » 编程设计

python之基于列表替换 pandas df 中的值的最佳方法

2025年05月04日9yxwkf

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