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

파이썬 pandas에서 concat으로 데이터프레임을 연결하는 옵션은?

_____
파이썬 pandas에서 concat으로 데이터프레임을 연결하는 옵션 FAQ

---

Q1: pandas.concat() 함수는 무엇인가요?
A1: pandas.concat() 함수는 여러 데이터프레임(DataFrame)이나 시리즈(Series)를 행 또는 열 방향으로 연결(concatenate)하는 함수입니다.

---

Q2: concat에서 주요 옵션은 무엇이 있나요?

| 옵션명 | 설명 | 기본값 |
|-------------|-------------------------------------------------|--------------|
| objs | 연결할 데이터프레임 또는 시리즈의 리스트 또는 딕셔너리 | 필수 인자 |
| axis | 연결 축 (0: 행 방향 연결, 1: 열 방향 연결) | 0 |
| join | 인덱스 병합 방식 ('inner' 또는 'outer') | ‘outer’ |
| ignore_index| 기존 인덱스를 무시하고 새로운 인덱스 생성 여부 | False |
| keys | 멀티인덱스 생성용 key 리스트 | None |
| levels | 멀티인덱스의 레벨 설정 | None |
| names | 멀티인덱스 레벨 이름 지정 | None |
| verify_integrity | 인덱스 중복 검사 수행 여부 | False |
| sort | 병합 시 축을 정렬할지 여부 | False |

---

Q3: axis 옵션의 역할은 무엇인가요?
A3: axis=0이면 행 방향으로 세로로 연결(기본값), axis=1이면 열 방향으로 가로로 연결합니다.

---

Q4: join 옵션 차이는 무엇인가요?
A4:
- 'outer' (기본) : 모든 인덱스/컬럼의 합집합을 사용합니다.
- 'inner' : 교집합만 사용해 공통된 인덱스/컬럼만 유지합니다.

---

Q5: ignore_index 옵션은 어떻게 사용되나요?
A5: ignore_index=True로 설정하면 병합 후 인덱스를 0부터 새로 부여하며, 기존 인덱스는 무시됩니다.

---

Q6: keys 옵션은 언제 쓰나요?
A6: 여러 데이터프레임을 concat할 때, 각 데이터에 멀티 레벨 인덱스를 붙일 때 사용합니다.

예) pd.concat([df1, df2], keys=['A', 'B']) → 인덱스 최상위에 'A', 'B' 레벨 추가

---

Q7: verify_integrity 옵션은 무엇을 검증하나요?
A7: 병합 후 인덱스 중복이 있는지 검사하며, 중복 시 오류를 발생시킵니다.

---

Q8: concat 함수에 컬럼이 다른 데이터프레임을 연결하면 어떻게 되나요?
A8: join='outer'면 컬럼들의 합집합으로 병합하고, 없는 곳은 NaN으로 채워집니다.
join='inner'면 두 데이터프레임에 공통된 컬럼만 남겨 병합합니다.

---

Q9: 멀티인덱스 설정 시 levels, names 옵션은 어떻게 활용하나요?
A9: keys로 생성한 멀티인덱스의 특정 레벨을 제한하거나(levels), 해당 레벨의 이름을 지정(names)할 때 사용합니다.

---

Q10: concat과 append의 차이는 무엇인가요?
A10: append()는 concat의 간단 버전으로, 단일 데이터프레임에 다른 하나를 행 방향으로 추가할 때 쓸 수 있으며, 최신 pandas에서는 concat 사용 권장합니다.

---

참고 코드 예제:
```python
import pandas as pd

df1 = pd.DataFrame({'A':[1,2], 'B':[3,4]})
df2 = pd.DataFrame({'A':[5,6], 'C':[7,8]})

행 방향 concat, join=outer (기본)
pd.concat([df1, df2], axis=0, join='outer')

열 방향 concat, join='inner'
pd.concat([df1, df2], axis=1, join='inner')

인덱스 무시 후 연결
pd.concat([df1, df2], ignore_index=True)

keys 옵션 (멀티인덱스 생성)
pd.concat([df1, df2], keys=['DF1','DF2'])
```

---

이상입니다. pandas concat 함수의 주요 옵션들을 잘 이해하고 활용하면 데이터 병합 작업을 훨씬 간편하고 유연하게 할 수 있습니다.
Pandas의 `concat` 함수는 여러 데이터프레임을 연결하는 데 사용됩니다.

이 함수는 다양한 옵션을 제공하여 데이터프레임을 원하는 방식으로 병합할 수 있습니다.

주요 옵션은 다음과 같습니다: 1. `objs` - 연결할 데이터프레임 또는 Series의 리스트입니다.



2. `axis` - 연결할 축을 지정합니다.

- `axis=0`: 행을 기준으로 연결 (기본값) - `axis=1`: 열을 기준으로 연결

3. `join` - 연결 시의 조인 방식입니다.

- `inner`: 교차하는 인덱스나 열만 포함 (교집합) - `outer`: 모든 인덱스나 열을 포함 (합집합)

4. `ignore_index` - `True`로 설정하면 새로운 인덱스를 생성합니다.

- `False` (기본값)일 경우 원본 데이터프레임의 인덱스를 유지합니다.



5. `keys` - 병합된 데이터프레임의 각 부분에 레벨을 추가하기 위해 사용할 수 있습니다.

- 여러 데이터프레임을 식별하기 위한 계층적 인덱스 구성 시 유용합니다.



6. `verify_integrity` - `True`로 설정하면, 중복 인덱스가 있는 경우 오류를 발생시킵니다.

- 기본값은 `False`로, 중복 인덱스에 대한 검사가 수행되지 않습니다.



7. `sort` - `True`로 설정하면, 결과 인덱스가 정렬됩니다.

- 기본값은 `False`이며, 이 경우 인덱스 순서는 원본 데이터프레임의 순서를 유지합니다.

예제 ```python import pandas as pd 데이터프레임 생성 df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]}) 행으로 연결 result_row = pd.concat([df1, df2], axis=0) 열로 연결 result_col = pd.concat([df1, df2], axis=1) 인덱스 무시 result_ignore_index = pd.concat([df1, df2], ignore_index=True) inner join result_inner = pd.concat([df1, df2], join='inner') keys 사용 result_keys = pd.concat([df1, df2], keys=['df1', 'df2']) print(result_row) print(result_col) print(result_ignore_index) print(result_inner) print(result_keys) ``` 이러한 옵션들을 사용하여 `concat` 함수로 효과적으로 데이터프레임을 연결할 수 있습니다.

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