concate
함수 이름 | pandas.concat() |
역할 | 여러 개의 데이터프레임(DataFrame) 또는 시리즈(Series)를 행(row) 또는 열(column) 방향으로 연결 |
왜 사용? | 여러 개의 데이터를 하나로 합쳐야 할 때 (예: 데이터 병합, 새로운 데이터 추가) |
어떻게 동작? | axis=0(기본값)일 때 행(row) 기준 연결, axis=1일 때 열(column) 기준 연결 |
기본 문법 | pd.concat([df1, df2], axis=0, ignore_index=True) |
중복 인덱스 처리 | ignore_index=True를 사용하면 새로운 연속 인덱스를 부여 |
열이 다를 때 | join='outer'(기본값) → 누락된 값은 NaN으로 채움, join='inner' → 공통된 열만 유지 |
✔ axis=0 = 행(row) 방향, 즉 위아래(↓)로 데이터 처리
✔ axis=1 = 열(column) 방향, 즉 좌우(→)로 데이터 처리
✔ axis=0을 사용하면 행을 추가/삭제, axis=1을 사용하면 열을 추가/삭제
✔ Pandas에서 axis는 "작업을 수행할 방향을 지정하는 개념" 🚀
📌 축(axis) 번호는 어떻게 정해졌을까?
Pandas는 NumPy의 다차원 배열(ndarray) 구조를 기반으로 만들어졌어요.
NumPy에서는 **"축(axis) 번호는 배열의 차원 순서대로 정해진다"**는 규칙이 있습니다.
✅ NumPy에서의 axis 개념
축 번호 | 방향 | 설명 |
axis=0 | 세로(↓) | "첫 번째 축(0번)", 행(row) 방향 (위→아래) |
axis=1 | 가로(→) | "두 번째 축(1번)", 열(column) 방향 (좌→우) |
즉, "축 0번은 첫 번째 차원(행), 축 1번은 두 번째 차원(열)" 이라는 개념이 Pandas에도 그대로 적용된 것입니다.
📌 그럼 x축, y축과는 어떤 관계가 있을까?
우리가 흔히 그래프에서 **x축(→, 가로 방향), y축(↑, 세로 방향)**을 떠올리는데,
Pandas에서는 axis=0이 행(row) 방향이고, axis=1이 열(column) 방향이니까 일반적인 x축, y축 개념과 반대로 보일 수도 있어요.
수학적 그래프 좌표계 | Pandas/NumPy의 axis 개념 |
x축 (→ 가로) | axis=1 (열(column) 방향) |
y축 (↑ 세로) | axis=0 (행(row) 방향) |
즉,
🔹 Pandas의 axis=0은 그래프의 y축(세로) 방향과 같고,
🔹 Pandas의 axis=1은 그래프의 x축(가로) 방향과 비슷합니다.
하지만 공식적으로 axis=0을 "x축", axis=1을 "y축"이라고 부르는 것은 아닙니다!
그보다는 NumPy/Pandas의 다차원 배열 개념에 따른 번호 지정으로 이해하는 것이 정확합니다. 🚀
✅ NumPy/Pandas의 다차원 배열 개념에 따른 axis 번호 지정
NumPy와 Pandas에서는 다차원 배열(ndarray, DataFrame 등)의 연산 방향을 지정하기 위해 axis 번호를 사용합니다.
이 개념은 데이터가 여러 차원(행, 열, 깊이 등)으로 구성될 수 있기 때문에 필요합니다.
구분설명왜 필요할까? (이유)어떻게 동작할까? (예제)
axis=0 (행 기준 연산, 수직 방향 ↓) | 배열의 행(row) 방향으로 연산 수행 | 데이터를 행을 따라 처리할 때 유용 | df.sum(axis=0) → 각 열(column)별 합 계산 |
axis=1 (열 기준 연산, 수평 방향 →) | 배열의 열(column) 방향으로 연산 수행 | 데이터를 열을 따라 처리할 때 유용 | df.sum(axis=1) → 각 행(row)별 합 계산 |
다차원 배열에서 axis | 다차원 데이터에서 차원을 선택하는 기준 | 2D, 3D 이상의 배열에서 특정 차원만 연산할 때 필요 | np.sum(arr, axis=2) → 3D 배열에서 특정 축 기준 합계 |
📌 왜 axis 번호가 필요할까?
- 데이터는 2차원(표 형태)뿐만 아니라, 3차원, 4차원 등 다차원으로 확장될 수 있음
- axis 번호를 통해 어느 방향(차원)으로 연산할지 명확하게 지정 가능
- 예를 들어, sum(), mean() 같은 연산을 할 때 행(row)별로 계산할지, 열(column)별로 계산할지 지정해야 함
'ChatGPT 아카이브 > Pandas' 카테고리의 다른 글
메서드 체이닝(Method Chaining) 파헤치기 (0) | 2025.03.05 |
---|---|
pivot vs pivot_table 차이점 (0) | 2025.03.05 |
pandas rename 함수 / astype 함수 / Pandas의 View 와 Copy 반환 (0) | 2025.03.05 |
dropna() vs fillna() 비교 / NaN과 None의 차이 (0) | 2025.03.04 |
drop_duplicates() 함수 파헤치기 (0) | 2025.03.04 |