✳️ concat
데이터프레임을 위아래로 혹은 좌우로 연결
- axis : 연결하고자 하는 축(방향)을 지정. 기본값은 0으로, 위아래로 연결하는 경우에 해당. 1로 설정하면 좌우로 연결
- ignore_index : 기본값은 False이며, 연결된 결과 데이터프레임의 인덱스를 유지. True로 설정하면 새로운 인덱스를 생성 (True → 기존 인덱스를 무시하고 새롭게 인덱스를 설정)
예시)
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']})
- 좌우로 연결하기
pd.concat([df1, df2]).reset_index(drop=True)
- 상하로 연결하기
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'C': ['A3', 'A4', 'A5'], 'D': ['B3', 'B4', 'B5']})
pd.concat([df1, df2], axis=1).reset_index(drop=True)
- 만약 값의 개수가 매칭이 안된다면?
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'C': ['A3', 'A4', 'A5', 'A6'], 'D': ['B3', 'B4', 'B5', 'B6']})
null 값으로 반영되어 출력해준다.
✳️ merge
SQL의 JOIN 연산과 유사한 방식으로 데이터프레임을 합칠 수 있음
주로 두 개 이상의 데이터프레임에서 공통된 열이나 인덱스를 기준으로 데이터를 병합할 때 활용
- left와 right : 병합할 데이터프레임 중 병합되는 기준이 되는 왼쪽(left)과 오른쪽(right) 데이터프레임
- how : 병합 방법을 나타내는 매개변수로, 'inner', 'outer', 'left', 'right' 등의 옵션이 있습니다.
- 'inner': 공통된 키(열)를 기준으로 교집합을 만들어줌
- 'outer': 공통된 키를 기준으로 합집합을 만들어줌
- 'left': 왼쪽 데이터프레임의 모든 행을 포함하고 오른쪽 데이터프레임은 공통된 키에 해당하는 행만 포함
- 'right': 오른쪽 데이터프레임의 모든 행을 포함하고 왼쪽 데이터프레임은 공통된 키에 해당하는 행만 포함
- on : 병합 기준이 되는 열 이름(혹은 열 이름의 리스트)을 지정
- left_on과 right_on : 왼쪽 데이터프레임과 오른쪽 데이터프레임에서 병합할 열 이름이 다른 경우에 사용
예시)
df1 = pd.DataFrame({
'key' : ['A', 'B', 'C', 'D'],
'value' : [1,2,3,4]
})
df2 = pd.DataFrame({
'key' : ['B', 'D', 'D', 'E'],
'value' : [5,6,7,8]
})
- key를 기준으로 데이터프레임을 병합
pd.merge(df1, df2, on='key')
- how='방식' 으로 병합을 어떤식으로 할 것인가를 지정
pd.merge(df1, df2, on='key', how='inner')
pd.merge(df1, df2, on='key', how='outer')
pd.merge(df1, df2, on='key', how='left')
pd.merge(df1, df2, on='key', how='right')
'📒 Today I Learn > 🐼 Pandas' 카테고리의 다른 글
[Pandas] 데이터 정렬과 pickle (0) | 2024.07.23 |
---|---|
[Pandas] 데이터 집계 (0) | 2024.07.23 |
[Pandas] 데이터 추가하기 (0) | 2024.07.23 |
[Pandas] Boolean indexing (0) | 2024.07.23 |
[Pandas] 데이터 선택 (0) | 2024.07.23 |