Python學習筆記: Pandas 多欄位、多條件篩選

以下的課程的課名來自公開資料,但教師、學生姓名及其他欄位均為虛構資料(人名為亂數產生)。

假設我們有一個Excel資料檔,記錄了學校的優良課程。

我們想從所有學生的選課資料中了解選修優良課程的學生資料。

import pandas as pd
Location = '0000_範例_優良課程_學生選課.xlsx'
df1 = pd.read_excel(Location, sheet_name='範例優良課程')
print(len(df1))
print(df1.columns)
df1.head()
df2 = pd.read_excel(Location, sheet_name='範例學生選課')
print(len(df2))
print(df2.columns)
df2.head()
# 第一種方法
df = pd.merge(df2, df1[['學年', '學期', '課號']], on=['學年', '學期', '課號'])
print(len(df))
print(df.columns)
df.head()
# 第二種方法
df = df2[df2.set_index(['學年', '學期', '課號']).index.isin(df1.set_index(['學年', '學期', '課號']).index)]
print(len(df))
df.head()

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *