Python 匹配后从dataframe复制列
我有2个数据帧,我发现了基于列(tld)的常见匹配,一旦找到匹配(在源和目标中的列之间),我需要复制目标数据帧中的列的值吗 数据帧1:源Python 匹配后从dataframe复制列,python,pandas,dataframe,Python,Pandas,Dataframe,我有2个数据帧,我发现了基于列(tld)的常见匹配,一旦找到匹配(在源和目标中的列之间),我需要复制目标数据帧中的列的值吗 数据帧1:源 uuid website company_name tld 0 11 www.facebook.com facebook facebook.com 1 22 www.yahoo.com yahoo inc yahoo.com 2 33 www.goog
uuid website company_name tld
0 11 www.facebook.com facebook facebook.com
1 22 www.yahoo.com yahoo inc yahoo.com
2 33 www.google.com Google google.com
3 44 www.cisco.com Cisco cisco.com
数据帧2:目的地
id website company_name tld match uuid
0 a www.facebook.com facebook facebook.com False NaN
1 b www.y.com Yahoo Inc y.com False NaN
2 c www.g.com Google g.com False NaN
3 d www.g.com Google Inc g.com False NaN
4 e www.facebook.com Facebook Inc facebook.com False NaN
查找:
我需要将UUID列从源代码复制到UUID列中
在目标数据帧中
id website company_name tld match uuid
0 a www.facebook.com facebook facebook.com True 11
1 b www.y.com YahooInc y.com False NaN
2 c www.g.com Google g.com False NaN
3 d www.g.com GoogleInc g.com False NaN
4 e www.facebook.com FacebookInc facebook.com True 11
这是你需要的吗
df2.merge(df1[['tld','uuid']],on='tld',how='left')
Out[677]:
id website company_name tld match uuid
0 a www.facebook.com facebook facebook.com True 1.0
1 b www.y.com YahooInc y.com False NaN
2 c www.g.com Google g.com False NaN
3 d www.g.com GoogleInc g.com False NaN
4 e www.facebook.com FacebookInc facebook.com True 1.0
需要从源数据帧复制UUID,在这种情况下,facebook.com有UUID 1,在您的解决方案中,您是硬编码1,但可以是任何值。例如,如果我匹配google.com,我应该分配UUID(3)。编辑clarity@spicyramen使用
合并
然后
df2.merge(df1[['tld','uuid']],on='tld',how='left')
Out[677]:
id website company_name tld match uuid
0 a www.facebook.com facebook facebook.com True 1.0
1 b www.y.com YahooInc y.com False NaN
2 c www.g.com Google g.com False NaN
3 d www.g.com GoogleInc g.com False NaN
4 e www.facebook.com FacebookInc facebook.com True 1.0