【问题标题】:Match two dataframes with similar columns匹配具有相似列的两个数据框
【发布时间】:2020-05-21 08:52:50
【问题描述】:

我有两个数据框:

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

谢谢。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试这个,它会使 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)
    

    发布这个只是合并你的数据基础年份和国家 希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2019-09-21
      • 2021-05-25
      • 2021-01-15
      • 2013-05-20
      • 1970-01-01
      • 2020-05-19
      相关资源
      最近更新 更多