Python Pandas从另一个数据框更新一个数据框值 [英] Python Pandas update a dataframe value from another dataframe

查看:188
本文介绍了Python Pandas从另一个数据框更新一个数据框值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在python中有两个数据框.我想使用另一个数据框中的匹配值来更新第一个数据框中的行.第二个数据框用作替代.

I have two dataframes in python. I want to update rows in first dataframe using matching values from another dataframe. Second dataframe serves as an override.

以下是具有相同数据和代码的示例:

Here is an example with same data and code:

DataFrame 1:

DataFrame 1 :

DataFrame 2:

DataFrame 2:

我想基于匹配的代码和名称来更新更新数据帧1.在此示例中,数据框1应该更新如下:

I want to update update dataframe 1 based on matching code and name. In this example Dataframe 1 should be updated as below:

注意:代码= 2和名称= Company2的行被更新为值1000(来自数据框2)

Note : Row with Code =2 and Name= Company2 is updated with value 1000 (coming from Dataframe 2)

import pandas as pd

data1 = {
         'Code': [1, 2, 3],
         'Name': ['Company1', 'Company2', 'Company3'],
         'Value': [200, 300, 400],

    }
df1 = pd.DataFrame(data1, columns= ['Code','Name','Value'])

data2 = {
         'Code': [2],
         'Name': ['Company2'],
         'Value': [1000],
    }

df2 = pd.DataFrame(data2, columns= ['Code','Name','Value'])

任何指针或提示吗?

推荐答案

您可以使用concat + drop_duplicates

pd.concat([df1,df2]).drop_duplicates(['Code','Name'],keep='last').sort_values('Code')
Out[1280]: 
   Code      Name  Value
0     1  Company1    200
0     2  Company2   1000
2     3  Company3    400

这篇关于Python Pandas从另一个数据框更新一个数据框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆