简体   繁体   English

如何比较不同数据框中的两列并替换值

[英]how to compare two columns in different data frames & replace the values

Two dataframes are there, df1 has 2 columns,name & profession那里有两个数据框,df1 有 2 列,名称和职业

df_1
        Name         profession     
        srinu        senior engineer    
        Azahar       engineer 
        vijaya       data analyst 
        rahul        team lead 
        swapna       manager
        krishna      engineer 
        rama         senior engineer 

df_2 has only one column with (name-employeeid) df_2 df_2 只有一列带有 (name-employeeid) df_2

        Name-empid           
                
        vijaya-2124148      
        rahul-2124152    
        krishna-2124189     
        rama-2124169         

I am trying to compare df1 and df2 using name and if names in df2 matches with df1, profession should be replaced as"data scientist".我正在尝试使用名称比较 df1 和 df2,如果 df2 中的名称与 df1 匹配,则应将专业替换为“数据科学家”。

i have tried many things,but couldn't figure it out,can someone help me,please?我已经尝试了很多东西,但无法弄清楚,有人可以帮助我吗?

i have tried using map,replace..but getting errors我试过使用 map,替换..但是出现错误

You could use:你可以使用:

# extract the names from df_2
m = (df_1['Name']
     .str.lower()
     .isin(df_2['Name-empid'].str.extract('(\w+)-', expand=False))
     )

# match with df_1 ensuring common case
df_1.loc[m, 'profession'] = 'Data Scientist'

Output: Output:

      Name       profession
0    srinu  senior engineer
1   Azahar         engineer
2   vijaya   Data Scientist
3    rahul   Data Scientist
4   swapna          manager
5  krishna   Data Scientist
6     rama   Data Scientist

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM