본문 바로가기

카테고리 없음

[파이썬 pandas] 판다스 매개변수 axis의 의미를 알아보자

판다스를 사용하다 보면 평균 계산, 데이터프레임 열이나 행 삭제 작업등을 할 때 axis(축)을 지정해야 합니다. 축을 넣어야 할 때면 0을 넣어야 하는지 1을 넣어야 하는지 헷갈릴 수 있습니다. 이번 시간에는 바로 이 axis에 대해서 알아보겠습니다.

 

① aixs=0(index)은 행을 따라 동작합니다. 각 컬럼의 모든 행에 대해서 작용합니다. ② aixs=1(columns)은 열을 따라 동작합니다. 각 행의 모든 컬럼에 대해서 작동합니다.

 

그림으로 직관적으로 이해해 보겠습니다.

 

 

예제로 사용할 데이터프레임을 만들겠습니다.

df = pd.DataFrame(
    {'name': ['KIM', 'LEE', 'SMITH','BROWN', 'MILLER'],
     'age': [24, 32, 43, 24, np.nan],
     'height': [178, 168, 171, 185, 176],
     'sex': ['M', 'F', 'F', 'M', 'F']})
df


"""
	name	age	height	sex
0	KIM	24.0	178	M
1	LEE	32.0	168	F
2	SMITH	43.0	171	F
3	BROWN	24.0	185	M
4	MILLER	NaN	176	F
"""

 

예시 1. drop(axis=0)

df.drop([1,2], axis=0)

"""
	name	age	height	sex
0	KIM	24.0	178	M
3	BROWN	24.0	185	M
4	MILLER	NaN	176	F
"""

 

예시 2. drop(axis=1)

df.drop(['age', 'height'], axis=1)

"""
	name	sex
0	KIM	M
1	LEE	F
2	SMITH	F
3	BROWN	M
4	MILLER	F
"""

 

예시 3. mean(axis=0)

df[['age', 'height']].mean(axis=0)

"""
age        30.75
height    175.60
dtype: float64
"""

 

예시 4. mean(axis=1)

df[['age', 'height']].mean(axis=1)

"""
0    101.0
1    100.0
2    107.0
3    104.5
4    176.0
dtype: float64
"""

 

예시 5. rank(axis=0)

df[['age', 'height']].rank(axis=0)

"""
	age	height
0	1.5	4.0
1	3.0	1.0
2	4.0	2.0
3	1.5	5.0
4	NaN	3.0
"""

 

예시 6. rank(axis=1)

df[['age', 'height']].rank(axis=1)

"""
	age	height
0	1.0	2.0
1	1.0	2.0
2	1.0	2.0
3	1.0	2.0
4	NaN	1.0
"""

 

여섯 가지 예제를 살펴보았습니다. 다시 한번 정리하면

 

axis=0은 각 열의 모든 행에 대해서 동작합니다. 

  - drop 각 열의 행을 지운다

  - mean 각 열의 요소(행)들의 평균을 구한다.

  - rank 각 열의 요소(행)들의 순위를 구한다.

 

axis=1은 각 행의 모든 열에 대해서 동작합니다.

 - drop 각 행의 열을 지운다.

 - mean 각 행의  요소(열)들의 평균을 구한다.

 - rank 각 행의 요소(열)들의 순위를 구한다.

 

그래도 아직 헷갈리실 수 있습니다. 조금 더 시간이 지나면 어느 순간 자연스럽게 이해 가는 순간이 올 거라 생각합니다.

 

 

- 이 글은 아나콘다(Anaconda3)가 설치된 환경을 기준으로 작성되었습니다.

  • 판다리아의 논개 2021.09.10 16:36

    df 옆에 대괄호를 이런식으로 [[ ]] 두번씩 입력해야 하는 경우는 어떤 경우인가요? ([ ]) 이렇게 소괄호랑 대괄호 섞인것도 그렇고, 각각 어떤 경우일때로 구분하는지 정말 헷갈립니다.