2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

파이썬 pandas의 merge 함수로 데이터프레임을 합치는 방법은?

_____
pandas merge 함수로 데이터프레임 합치는 법 FAQ

Q1: pandas의 merge 함수는 무엇인가요?
A1: `merge` 함수는 두 개 이상의 데이터프레임을 공통 열 또는 인덱스를 기준으로 병합하는 함수입니다. SQL의 JOIN과 유사하게 작동합니다.

---

Q2: merge 기본 문법은 어떻게 되나요?
A2:
```python
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, suffixes=('_x', '_y'))
```
- `left`, `right`: 병합할 데이터프레임
- `how`: 조인 방식 (inner, outer, left, right)
- `on`: 공통으로 병합할 컬럼명
- `left_on`, `right_on`: 각각 병합할 컬럼명 지정 (다를 경우)
- `left_index`, `right_index`: 인덱스를 기준으로 병합할 때 True
- `suffixes`: 겹치는 컬럼 이름 뒤에 붙일 접미사

---

Q3: 기본 inner join 방식으로 병합하는 예제는?
A3:
```python
df_merged = pd.merge(df1, df2, on='key')
```
- `key` 컬럼을 기준으로 두 데이터프레임의 공통된 행만 합칩니다.

---

Q4: 다른 조인(how) 옵션에는 무엇이 있나요?
A4:
- `inner`: 공통된 키가 존재하는 행만
- `left`: 왼쪽 데이터프레임의 모든 행 유지
- `right`: 오른쪽 데이터프레임의 모든 행 유지
- `outer`: 양쪽 데이터프레임 모든 행 유지, 없는 데이터는 NaN 처리

예:
```python
pd.merge(df1, df2, on='key', how='outer')
```

---

Q5: 병합할 컬럼명이 다를 때는 어떻게 하나요?
A5:
```python
pd.merge(df1, df2, left_on='left_key', right_on='right_key')
```
---

Q6: 인덱스를 기준으로 병합하는 방법은?
A6:
```python
pd.merge(df1, df2, left_index=True, right_index=True)
```

---

Q7: 둘 다 인덱스와 특정 컬럼을 함께 사용할 수 있나요?
A7: `merge`는 인덱스와 컬럼을 동시에 병합하려면 아래와 같이 할 수 있습니다. 다만 보통은 하나만 선택합니다.
```python
pd.merge(df1, df2, left_on='key', right_index=True)
```

---

Q8: 겹치는 컬럼명이 있을 때 접미사를 붙이는 방법은?
A8: `suffixes` 파라미터로 지정할 수 있습니다.
```python
pd.merge(df1, df2, on='key', suffixes=('_left', '_right'))
```

---

Q9: 다중 키를 기준으로 병합할 수 있나요?
A9: 네, 리스트 형태로 여러 컬럼명을 전달하면 됩니다.
```python
pd.merge(df1, df2, on=['key1', 'key2'])
```

---

Q10: merge 후 결과에 특정 컬럼만 선택하려면?
A10: merge 후에 필요한 컬럼만 선택하거나 `merge` 전에 열을 미리 필터링 합니다.
```python
df_merged = pd.merge(df1[['key', 'value1']], df2[['key', 'value2']], on='key')
```

---

요약
- `pd.merge()` 함수로 두 데이터프레임을 조인
- `on` 또는 `left_on`, `right_on`으로 키 지정
- `how`로 조인 방식 결정(inner, left, right, outer)
- 인덱스 병합 가능(`left_index=True` 등)
- 겹치는 컬럼은 `suffixes`로 이름충돌 회피

pandas merge는 SQL JOIN 개념과 매우 유사해 데이터 결합 시 유용하게 사용됩니다.
Pandas의 `merge` 함수는 두 개의 데이터프레임을 특정한 기준에 따라 병합하는 데 사용됩니다.

데이터베이스의 JOIN과 유사하게 작동합니다.

다음은 `merge` 함수를 사용하는 기본적인 방법과 예제입니다.

기본 사용법 `pd.merge(left, right, how='inner', on=None)` - left : 병합할 첫 번째 데이터프레임 - right : 병합할 두 번째 데이터프레임 - how : 병합 방식 ('inner', 'outer', 'left', 'right' 중 하나) - inner : 두 데이터프레임에서 공통적인 키 값만 포함 - outer : 양측의 모든 키 값 포함 (결측치는 NaN으로 표시) - left : 왼쪽 데이터프레임의 모든 키 값 포함 - right : 오른쪽 데이터프레임의 모든 키 값 포함 - on : 병합할 키 컬럼 이름 (컬럼 이름이 동일할 경우 사용) 예제 1. 데이터프레임 생성 ```python import pandas as pd 첫 번째 데이터프레임 df1 = pd.DataFrame({ 'key': ['A', 'B', 'C'], 'value1': [1, 2, 3] }) 두 번째 데이터프레임 df2 = pd.DataFrame({ 'key': ['B', 'C', 'D'], 'value2': [4, 5, 6] }) ```

2. 데이터프레임 병합 Inner Join (기본값) ```python result_inner = pd.merge(df1, df2, on='key') print(result_inner) ``` 출력: ``` key value1 value2 0 B 2 4 1 C 3 5 ``` Outer Join ```python result_outer = pd.merge(df1, df2, on='key', how='outer') print(result_outer) ``` 출력: ``` key value1 value2 0 A 1.0 NaN 1 B

2.0

4.0 2 C

3.0

5.0 3 D NaN

6.0 ``` Left Join ```python result_left = pd.merge(df1, df2, on='key', how='left') print(result_left) ``` 출력: ``` key value1 value2 0 A 1.0 NaN 1 B

2.0

4.0 2 C

3.0

5.0 ``` Right Join ```python result_right = pd.merge(df1, df2, on='key', how='right') print(result_right) ``` 출력: ``` key value1 value2 0 B

2.0 4 1 C

3.0 5 2 D NaN 6 ```

3. 여러 키를 사용한 병합 데이터프레임에 여러 개의 키로 병합하고자 할 때는 `on`에 리스트를 사용합니다.

```python df1 = pd.DataFrame({ 'key1': ['A', 'B', 'C'], 'key2': ['D', 'E', 'F'], 'value1': [1, 2, 3] }) df2 = pd.DataFrame({ 'key1': ['B', 'C', 'D'], 'key2': ['E', 'F', 'G'], 'value2': [4, 5, 6] }) result_multi = pd.merge(df1, df2, on=['key1', 'key2']) print(result_multi) ``` 출력: ``` key1 key2 value1 value2 0 B E 2 4 1 C F 3 5 ``` 결론 `merge` 함수는 판다스에서 데이터프레임을 병합하는 강력한 도구로, 다양한 병합 방식을 위한 다양한 옵션을 제공합니다.

이를 통해 필요에 따라 데이터를 효율적으로 조작할 수 있습니다.

작성자: 이지율 [비회원] | 작성일자: 1년 전 2025-02-10 05:31:00
조회수: 432 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.