
在實務分析中,我們常常會把兩份資料合併。但你有沒有遇過這種情況——資料合併完了,但你忘了哪一筆原本是從左邊來的?還是右邊才有?甚至兩邊都有?
這時就可以用 indicator=True
幫你標記每一欄的「出身」。
資料範例:左邊是員工資料、右邊是津貼資料
import pandas as pd
# 左邊:員工基本資料
df_employee = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Department': ['HR', 'IT', 'Finance', 'Marketing']
})
# 右邊:有拿到補助的人
df_allowance = pd.DataFrame({
'Name': ['Alice', 'Charlie', 'Eve'],
'Allowance': [1000, 800, 500]
})
📌 注意:Eve 是外部合作的顧問,有拿到補助,但不在原始員工名單裡。
合併:想知道誰在哪裡出現?
merged_df = pd.merge(
df_employee,
df_allowance,
on='Name',
how='outer',
indicator=True
)
print(merged_df)
_merge
欄位幫你讀懂資料從哪裡來:
both
:表示這筆資料兩邊都有(例如 Alice、Charlie)left_only
:表示這筆資料只有在左邊有(例如 Bob、David)right_only
:只在右邊(例如 Eve)- 如果你在清資料,這個
_merge
就像是個「指南針」告訴你是否遺漏了對應資料。 - 可以配合
.query()
快速篩選某個來源,例如只看左邊獨有:
merged_df.query('_merge == "left_only"')
謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads/ FB,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!