Pandas Vlookup

Fariba Laiq 2023年1月30日 2022年5月16日
  1. 在 Pandas 中使用 Inner Join 執行 Vlookup
  2. 在 Pandas 中使用 Left Join 執行 Vlookup
  3. 在 Pandas 中使用 Right Join 執行 Vlookup
  4. 在 Pandas 中使用 Outer Join 執行 Vlookup
Pandas Vlookup

Vlookup 代表垂直查詢。Vlookup 用於合併兩個不同的表,兩個表之間應該至少有一個共同的屬性。

作為輸出,我們將得到一個由兩個表中的資料組成的表。這個過程類似於 SQL 中的 join() 查詢。

要在 Python 中連線兩個 DataFrame,我們可以使用 Pandas 庫中提供的 merge() 方法。有很多方法可以合併兩個表。

在 Pandas 中使用 Inner Join 執行 Vlookup

Inner join 合併表中的那些行,這些行具有匹配的鍵值。它返回兩個表中滿足條件的所有行。

在下面的示例中,我們開啟了兩個表。Student 表由 ST_IDST_NAMEDepartment 列組成。

另一個是 Course 表,其中包含有關學生註冊的課程的資訊。課程表的列是 ST_IDCourse

我們通過使用 Pandas 物件呼叫 merge() 方法來執行 inner join,並傳遞了兩個表、合併表的列名和指定的 inner join

這兩個表將根據 ST_ID 值組合成一個表作為輸出。

如果學生表中的 ST_ID 值與課程表的 ST_ID 值匹配的條件,則將選擇這些記錄進行合併。這裡的 ST_ID 就像 SQL 中的外來鍵一樣工作。

#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
inner_join = pd.merge(student, course, on ='ST_ID', how ='inner')
print(inner_join)

輸出:

內聯接

在 Pandas 中使用 Left Join 執行 Vlookup

Left join 的工作方式類似於 inner join,但唯一的區別是它包括所有左表/第一個錶行和第二個表的匹配行。在下面的示例中,我們通過在 merge() 方法呼叫中指定 left 來執行 left join

作為輸出,我們可以看到所有匹配的記錄,加上左表中的額外記錄也包含在最終表中。如果在第二個表中沒有找到匹配的記錄,則該行的值將是 NaN(不是數字)。

#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
left_join = pd.merge(student, course, on ='ST_ID', how ='left')
print(left_join)

輸出:

左連線

在 Pandas 中使用 Right Join 執行 Vlookup

右連線左連線相反。右連線就像內連線;但是,唯一的區別是它包括所有正確的表/第二個錶行和兩個表的匹配行。

下面的示例通過在 merge() 方法呼叫中指定 right 來執行 right join。作為輸出,我們可以看到所有匹配的記錄以及右表中的額外記錄都包含在最終表中。

如果在第一個表中沒有找到匹配的記錄,則該行的值將是 NaN(不是數字)。

#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
right_join = pd.merge(student, course, on ='ST_ID', how ='right')
print(right_join)

輸出:

右聯接

在 Pandas 中使用 Outer Join 執行 Vlookup

外連線是左連線和右連線的組合。它結合了左表和右表中的所有行。

如果沒有找到匹配的值,NaN 將出現在該行中。

#Python 3.x
import pandas as pd
student = pd.read_csv('student.csv')
course = pd.read_csv('Course.csv')
print(student)
print(course)
outer_join = pd.merge(student, course, on ='ST_ID', how ='outer')
print(outer_join)

輸出:

外連線

Author: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn