如何根据 pandas 中的公共键合并两个数据集?
How do I merge two datasets based on the common key in pandas?
我有两个包含域名的数据集:
df1:
varA domains
123 www.google.com
456 www.ebay.com
789 www.amazon.com
101 www.nbc.com
....
df2:
urls varB
www.cnn.com xsd
www.ebay.com wer
www.nbc.com xyz
www.amazon.com zyx
....
我需要使用 df1 中的 varA 值填充 df2 中的 urls 值以匹配 domains/urls,因此输出将如下所示:
urls varA varB
www.ebay.com 456 wer
www.nbc.com 101 xyz
www.amazon.com 789 zyx
....
df2 中所有在 df1 中没有匹配域的域都应删除。
我有这个代码:
target_cols = ['domains', 'urls', 'varB', 'varA']
df2.merge(df1[target_cols], on='urls', how='inner')
代码生成错误。
我该如何解决?任何可行的替代解决方案?
错误是因为您要合并的键名不同
这会起作用
pd.merge(df1, df2, left_on = 'domains', right_on = 'urls', how = 'inner').drop('domains', axis = 1)
varA urls varB
0 456 www.ebay.com wer
1 789 www.amazon.com zyx
2 101 www.nbc.com xyz
我有两个包含域名的数据集:
df1:
varA domains
123 www.google.com
456 www.ebay.com
789 www.amazon.com
101 www.nbc.com
....
df2:
urls varB
www.cnn.com xsd
www.ebay.com wer
www.nbc.com xyz
www.amazon.com zyx
....
我需要使用 df1 中的 varA 值填充 df2 中的 urls 值以匹配 domains/urls,因此输出将如下所示:
urls varA varB
www.ebay.com 456 wer
www.nbc.com 101 xyz
www.amazon.com 789 zyx
....
df2 中所有在 df1 中没有匹配域的域都应删除。
我有这个代码:
target_cols = ['domains', 'urls', 'varB', 'varA']
df2.merge(df1[target_cols], on='urls', how='inner')
代码生成错误。
我该如何解决?任何可行的替代解决方案?
错误是因为您要合并的键名不同 这会起作用
pd.merge(df1, df2, left_on = 'domains', right_on = 'urls', how = 'inner').drop('domains', axis = 1)
varA urls varB
0 456 www.ebay.com wer
1 789 www.amazon.com zyx
2 101 www.nbc.com xyz