[英]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.