简体   繁体   English

有选择地从另一个 dataframe 替换 dataframe 中的值

[英]Selectively replace values in dataframe from another dataframe

I have two dataframes:我有两个数据框:

df1

   Company Name     Symbol     ID
0       AAA Inc  No Symbol    123
1       BBB Inc          B    456
2       CCC Inc          C    789
3       DDD Inc          D    112
4       EEE Inc          E    134
5       FFF Inc  No Symbol    156

df2

   Company Name     Symbol     ID
0       Aaa Inc          A    123
1       bbb Inc          B    456
2         C  Co  No Symbol    789
3       fff Inc          F    156
4       ZZZ Inc          Z    999

And I want to replace only the No Symbol values in df1 with the Symbol from df2 by using ID as the lookup, so that the output would look like this:我想通过使用ID作为查找,只用df2中的符号替换df1中的No Symbol Symbol ,这样 output 看起来像这样:

   Company Name     Symbol     ID
0       AAA Inc          A    123
1       BBB Inc          B    456
2       CCC Inc          C    789
3       DDD Inc          D    112
4       EEE Inc          E    134
5       FFF Inc          F    156

How do I achieve this?我如何实现这一目标?

df1_no_symbol_id = df1[df1['Symbol']=='No Symbol']['ID']

df2_symbol_id_values_list = df2[df2['ID'].isin(df1_no_symbol_id)].to_dict('records')

for i in df2_symbol_id_values_list:
    id = i['ID']
    value = i['Symbol']
    df1.loc[df1.ID==id, 'Symbol'] = value

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

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