[英]Create column with corresponding values from another dataframe using pandas.DataFrame.merge
[英]Populate column value with corresponding data from another dataframe (merge??)
我有兩個數據框。 第一的:
country city
0 Norway a
1 Norway a
2 Norway a
3 Norway b
4 Norway b
5 Norway b
6 Sweden c
7 Sweden c
8 Sweden c
9 Sweden c
10 Sweden d
11 Sweden d
12 Sweden d
第二:
city region
0 a 1
1 a 2
2 b 3
3 b 4
4 c 5
5 c 6
6 c 7
7 d 8
我怎樣才能得到以下數據框? 我們只需要為相應的城市分配一個正確的國家作為第二個數據框中的新列。
country city region
0 Norway a 1
1 Norway a 2
2 Norway b 3
3 Norway b 4
4 Sweden c 5
5 Sweden c 6
6 Sweden c 7
7 Sweden d 8
我曾嘗試使用合並和映射,但未能成功。
您可以創建一個將city
名稱映射到country
名稱的dict
,然后將其用作pd.Series.map
方法的映射:
df2['country'] = df2['city'].map(dict(zip(df1.city, df1.country)))
print(df2)
輸出:
city region country
0 a 1 Norway
1 a 2 Norway
2 b 3 Norway
3 b 4 Norway
4 c 5 Sweden
5 c 6 Sweden
6 c 7 Sweden
7 d 8 Sweden
您可以合並兩個數據框,但首先您需要在第一個數據框中刪除重復項:
pd.merge(df1.drop_duplicates(), df2)
輸出:
country city region
0 Norway a 1
1 Norway a 2
2 Norway b 3
3 Norway b 4
4 Sweden c 5
5 Sweden c 6
6 Sweden c 7
7 Sweden d 8
試試這個:
pd.merge(df1,df2, how='inner', left_on='city',right_on='city')
我有兩個數據框。 第一的:
country city
0 Norway a
1 Norway a
2 Norway a
3 Norway b
4 Norway b
5 Norway b
6 Sweden c
7 Sweden c
8 Sweden c
9 Sweden c
10 Sweden d
11 Sweden d
12 Sweden d
第二:
city region
0 a 1
1 a 2
2 b 3
3 b 4
4 c 5
5 c 6
6 c 7
7 d 8
如何獲得以下 dataframe? 我們只需要在第二個 dataframe 中為相應的城市分配一個正確的國家作為新列。
country city region
0 Norway a 1
1 Norway a 2
2 Norway b 3
3 Norway b 4
4 Sweden c 5
5 Sweden c 6
6 Sweden c 7
7 Sweden d 8
我曾嘗試使用合並和映射,但未能成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.