Pandas에서 두 개의 DataFrame을 병합하려면 merge() 함수를 사용합니다. 왼쪽 외부 조인(Left Outer Join)은 merge() 함수의 how 매개변수에 다음과 같이 설정하여 구현할 수 있습니다.
how = "left"왼쪽 외부 조인은 왼쪽 DataFrame의 모든 행을 그대로 유지하며, 오른쪽 DataFrame에 일치하는 값이 없는 경우 해당 셀은 NaN(결측값)으로 채워집니다.
먼저 pandas 라이브러리를 별칭(alias)과 함께 가져옵니다.
import pandas as pd이제 병합할 두 개의 DataFrame을 생성해 보겠습니다.
# 첫 번째 DataFrame 생성
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)
# 두 번째 DataFrame 생성
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
}
)공통 열인 Car를 기준으로 병합하고, how 매개변수에 "left"를 지정하면 왼쪽 외부 조인이 수행됩니다.
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="left")예제
다음은 전체 코드입니다.
import pandas as pd
# 첫 번째 DataFrame 생성
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)
print("DataFrame1 ...\n", dataFrame1)
# 두 번째 DataFrame 생성
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
}
)
print("\nDataFrame2 ...\n", dataFrame2)
# 공통 열 Car를 기준으로 병합하며 how="left"로 왼쪽 외부 조인 수행
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="left")
print("\n왼쪽 외부 조인으로 병합된 DataFrame ...\n", mergedRes)출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame1 ...
Car Units
0 BMW 100
1 Lexus 150
2 Audi 110
3 Mustang 80
4 Bentley 110
5 Jaguar 90
DataFrame2 ...
Car Reg_Price
0 BMW 7000
1 Lexus 1500
2 Tesla 5000
3 Mustang 8000
4 Mercedes 9000
5 Jaguar 6000
왼쪽 외부 조인으로 병합된 DataFrame ...
Car Units Reg_Price
0 BMW 100 7000.0
1 Lexus 150 1500.0
2 Audi 110 NaN
3 Mustang 80 8000.0
4 Bentley 110 NaN
5 Jaguar 90 6000.0결과 해석
출력 결과를 보면 왼쪽 DataFrame(dataFrame1)의 모든 행(BMW, Lexus, Audi, Mustang, Bentley, Jaguar)이 그대로 유지된 것을 확인할 수 있습니다. 반면 오른쪽 DataFrame(dataFrame2)에는 Audi와 Bentley 데이터가 존재하지 않기 때문에, 해당 행의 Reg_Price 값은 NaN으로 표시됩니다. 이처럼 왼쪽 DataFrame의 데이터는 모두 보존하면서 오른쪽 DataFrame에서 일치하지 않는 부분만 결측값으로 처리하는 것이 왼쪽 외부 조인의 핵심 특징입니다.