如何在 Python 中跨数据框进行匹配?

我有 2 个数据框,一个是包含许多列的自由贸易协定数据集,列 c1 到 c91 表示特定自由贸易协定的不同国家部分,如下所示: FTA 数据

FTA数据例如

No   Base_treaty   entry_type               c1          c2            c3

1     1            treaty             Afghanistan     India           NA

2     2            treaty                Algeria      Egypt          Ghana

3     3            treaty                Algeria      Angola         Benin

4     4            treaty                Egypt        Jordan         Morocco

5     5            treaty                Albania      Bulgaria         NA

6     6            treaty                Albania      Croatia          NA

另一个数据框包含两个特定国家 i 和 j 之间的贸易数据。贸易数据


   inventor_ctry_i   authority_ctry_j           

1    Albania            Bulgaria         

2    Albania            Croatia          

3    Algeria             Angola        

4    Algeria            Belgium         

5    Algeria            France          

6    Andorra            Turkey          

7    Andorra          United States   

8    Anguilla           Germany         

9    Anguilla         Switzerland     

10    Anguilla        United States

期望的输出:


No   Base_treaty   entry_type         matched ctry1   matched ctry2       

 3     3            treaty                Algeria      Angola         

 5     5            treaty                Albania      Bulgaria         

 6     6            treaty                Albania      Croatia    




  

我希望能够在贸易数据中找到国家 i 和 j,它们出现在 FTA 数据的 c1 到 c91 之间的同一行中。如果两者都出现在特定行中,则从 FTA 中的行中提取这 2 个国家,保持编号、基本条约和条目类型列不变。


任何帮助将不胜感激!


慕姐8265434
浏览 116回答 1
1回答

守着一只汪

连接与您在上面看到的合并技术有点不同。通过合并,您可以期望生成的数据集将来自父数据集的行混合在一起,通常基于某些共性。根据合并的类型,您可能还会丢失在其他数据集中没有匹配项的行。通过串联,您的数据集只是沿着一个轴(行轴或列轴)拼接在一起。在视觉上,沿行没有参数的串联看起来像这样:concatenated = pandas.concat([df1, df2], axis=1)请参考此链接以获得更多代码的理解和清除。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python