簡體   English   中英

匹配具有相似列的兩個數據框

[英]Match two dataframes with similar columns

我有兩個數據框:

df1:

  Country_Name      Population_1991     Population_1992  
0 Colombia          33758337            34422569
1 Ecuador           3244345             324345455
2 France            362763732           372874749   
3 UK                327874738           375960889

df2:

    Period  Trade_Flow  Reporter    Partner Trade_Value
0   1991    Import      Colombia    France  230723392
1   1991    Import      Colombia    UK      1237364
2   1992    Import      Colombia    France  230723392
3   1992    Import      Colombia    UK      1237364
4   1991    Import      Ecuador     France  230723392
5   1991    Import      Ecuador     UK      1237364
6   1992    Import      Ecuador     France  230723392
7   1992    Import      Ecuador     UK      1237364

我想要的是使用年份和 Country_name 在 df2 上加入 df1。 因此,從 df2 中查看每一行的 Reporter 國家/地區,並將其與 df1 中的 Country_Name 匹配。 取人口值並將其添加到 Reporter_pop 列中。 對 Partner_pop 等執行相同的操作。 最終結果應如下所示:

    Period  Trade_Flow  Reporter    Partner Trade_Value Reporter_pop Partner_pop
0   1991    Import      Colombia    France  230723392   33758337     362763732                   
1   1991    Import      Colombia    UK      1237364     33758337     327874738                 
2   1992    Import      Colombia    France  230723392   34422569     372874749  
3   1992    Import      Colombia    UK      1237364     34422569     375960889
4   1991    Import      Ecuador     France  230723392   3244345      362763732                 
5   1991    Import      Ecuador     UK      1237364     3244345      327874738              
6   1992    Import      Ecuador     France  230723392   324345455    372874749  
7   1992    Import      Ecuador     UK      1237364     324345455    375960889

謝謝你。

試試這個,它會使 df1 數據格式與 df2 相同:

import pandas as pd
df=pd.DataFrame({'Country_name':['columbia',
                                 'ecuador', 'France'],
                'pop_1991':[123325,453233,645632],
                'pop_1992':[153232,478653,654324]})


df2=df.iloc[0:,[0,1]]
df2['Year']=1991
df2=df2.rename(columns={'pop_1991':'population'})
df3=df.iloc[0:,[0,2]]
df3['Year']=1992
df3=df3.rename(columns={'pop_1992':'population'})
df4=df2.append(df3,ignore_index=True)

發布這個只是合並你的數據基礎年份和國家希望它對你有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM