python - 满足条件时如何更改数据框中的单个值?
问题描述
据我所知,我目前在 pandas 数据框中更改值的方法远非最佳,并且确实损害了我的工作流程。
示例:我想检查是否在另一个数据框中找到了名称,如果是,则使用从第一个数据框中iloc
搜索到的名称从该数据框中输入值:
for idx in id_list_of_names:
name = df["name"].iloc[idx]
if name in df_two["name"].values:
df["value"].iloc[idx] = df_two["value"][df_two["name"]==name].values
df
数据框1 ,:
id | name | value
1 | "David" | 0
2 | "Lisa" | 0
...............
df_two
数据框2 ,:
id | name | value
1 | "Kevin" | 10
.................
255 | "David" | 22
.................
我想要做的是将 David ( ) 的值df_two
放在value = 22
Dataframe 1 中iloc
的 David ( df["value"].iloc[1] == 22
) 处。如果df
相应的名称存在于df_two
.
merge()
是我通常的解决方案,但由于该列value
已经存在,如果我在这种情况下value_1
使用,将创建一个新列。merge
解决方案
为什么不在 Name 上合并 2 个数据框,然后应用自定义函数来创建在和final_value
之间进行选择的列?value
value_1
推荐阅读
- php - 从多维数组 PHP 中获取数据
- javascript - 将数组中的对象合并为一个
- vuejs2 - 从另一个组件调用的 vue.js 2 混合函数,给出“TypeError:无法读取未定义的属性‘搜索’”
- redux - 从 redux-observable 中调度多个动作
- sql - 我需要一个包含列 CatId 和 Flag 的视图。如果存在 CatID 的任何子类别,则标志将为 1
- python - 如何使用线程和回调函数测试python?
- excel - 如何从数据集逆向工程预测
- laravel - 如何从 Laravel 中具有多个角色的用户那里获取权限?
- ruby-on-rails - 按类别计算总预订量 - Rails
- javascript - 我们可以为同一个文本框使用多种文本颜色吗?