簡體   English   中英

使用來自另一個數據框的相應數據填充列值(合並??)

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

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