Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查两个数据帧之间的公共行,并用df1的值替换第二个数据帧的匹配行_Python_Pandas - Fatal编程技术网

Python 检查两个数据帧之间的公共行,并用df1的值替换第二个数据帧的匹配行

Python 检查两个数据帧之间的公共行,并用df1的值替换第二个数据帧的匹配行,python,pandas,Python,Pandas,我有两个数据帧,比如说df1和df2。两个数据帧都有相同的列,名为URL和Age。我想检查df2['URL']中的df1['URL'],然后将匹配行的df2['Age']替换为df1['Age'],并保持df2中的其余行不变 df1 df2 现在,我想检查df1['URL']中是否有任何URL存在于df2['URL']中,我想用df1['Age']替换df2['Age'],并保持不常见的URL不变 因此,预期产出将为: df3 map+fillna: map允许我们替换常见URL的年龄,然后.f

我有两个数据帧,比如说df1和df2。两个数据帧都有相同的列,名为URL和Age。我想检查df2['URL']中的df1['URL'],然后将匹配行的df2['Age']替换为df1['Age'],并保持df2中的其余行不变

df1

df2

现在,我想检查df1['URL']中是否有任何URL存在于df2['URL']中,我想用df1['Age']替换df2['Age'],并保持不常见的URL不变

因此,预期产出将为:

df3

map+fillna: map允许我们替换常见URL的年龄,然后.fillna恢复不匹配URL的值。这假设URL是df1中的唯一键:

URL          Category                         Age     
google.com  [IAB19, Technology & Computing]   A
youtube.com [IAB25, Non-Standard Content]     H
facebook.co [IAB14, Society]                  A
amazon.com  [IAB22, Shopping]                 M
wpedia.org  [IAB5, Education]                 E
URL          Category         Age     
google.com  [IAB19, BBCA]     T
youtube.com [IAB25, AACB]     T
facebook.co [IAB14, HLGB      T 
amazon.com  [IAB22, ETCL]     T
wpedia.org  [IAB5, J TCL]     T
example1.com [LHTB, 2213]     A
example2.com [OPCL, 9909]     A
example3.com [PPRS, 7656]     A
URL          Category         Age     
google.com  [IAB19, BBCA]     A
youtube.com [IAB25, AACB]     H
facebook.co [IAB14, HLGB      A
amazon.com  [IAB22, ETCL]     M
wpedia.org  [IAB5, J TCL]     E
example1.com [LHTB, 2213]     A
example2.com [OPCL, 9909]     A
example3.com [PPRS, 7656]     A
df3 = df2.copy()
df3['Age'] = df3.URL.map(df1.set_index('URL').Age).fillna(df3.Age)

#            URL            Category Age
#0    google.com  [IAB19, BBCA]        A
#1   youtube.com  [IAB25, AACB]        H
#2   facebook.co  [IAB14, HLGB         A
#3    amazon.com  [IAB22, ETCL]        M
#4    wpedia.org  [IAB5, J TCL]        E
#5  example1.com   [LHTB, 2213]        A
#6  example2.com   [OPCL, 9909]        A
#7  example3.com   [PPRS, 7656]        A