python - 如何根据 pandas 中的公共(public)键合并两个数据集?

标签 python pandas foreign-keys merging-data

我有两个包含域名的数据集:

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 中的 url 值以匹配域/url,因此输出如下所示:

 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

关于python - 如何根据 pandas 中的公共(public)键合并两个数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42754347/

相关文章:

python - 在 Python OpenCV2 中打开多 channel 图像

python - 将不同的 seaborn 面网格组合成单个图

python - 如何按索引 reshape 多列数据框?

mysql - 我怎样才能最好地将其建模为数据库?

mysql - 添加外键时 CONSTRAINT 关键字有什么用?

java - 将外键插入表中

python - pandas : pd. concat 导致重复的列

python - scipy.integrate.solve_ivp 中的初始值

python - 如何在具有不同列名的两个数据帧之间执行关联

python - 将字符串转换为 float Pandas