본문 바로가기
ChatGPT 아카이브/Pandas

concate / 축(axis) 번호 살펴보기

by Nanki 2025. 3. 5.

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)별로 계산할지 지정해야 함
반응형