python - 根据列表替换pandas df中值的最佳方法
问题描述
我有一个 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
推荐阅读
- javascript - Discord.JS 如何使用参数
- python - GaussianProcessRegressor ValueError: 数组太大;`arr.size * arr.dtype.itemsize` 大于最大可能大小
- javascript - Javascript事件监听回调函数应该在回调队列中等待
- javascript - 当我运行此错误时:TypeError:navigation.getParam 不是函数:
- android - Android NDK 2021 年构建 FFMPEG
- unity3d - 在移动设备上处理多个屏幕方面的最佳方式
- heroku - 将 Angular 部署到 Heroku:“找不到模块 app/server.js”
- parameters - 使用参数和源块创建代理
- javascript - 每当加载主页时,如何清除 Shopify 购物车?
- c - g++ 没有这样的文件或目录?