首页 > 解决方案 > 满足条件时如何更改数据框中的单个值?

问题描述

据我所知,我目前在 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 = 22Dataframe 1 中iloc的 David ( df["value"].iloc[1] == 22) 处。如果df相应的名称存在于df_two.

merge()是我通常的解决方案,但由于该列value已经存在,如果我在这种情况下value_1使用,将创建一个新列。merge

标签: pythonpandasdataframe

解决方案


为什么不在 Name 上合并 2 个数据框,然后应用自定义函数来创建在和final_value之间进行选择的列?valuevalue_1


推荐阅读