728x90
aixs=0, axis=1 이 헷갈려 정리하는 김에 포스팅을 하게 되었습니다.
axis=0은 행, axis=1은 열입니다.
연산 과정일 때
결론부터 말하면 연산시 행은 책의 높이이고 열은 책을 담는 서랍인데 axis=0은 행 방향(가로 방향)으로 동작하는데 가로 방향인 행들이 쌓이게 되면 세로 방향으로 쌓이게 됩니다. 책이 위로 쌓아지는 것과 같다고 생각합니다.
aixs=1은 열 방향(세로 방향)으로 동작하는데 연산시 세로 방향인 열들이 쌓이게 되면 가로 방향으로 움직이게 됩니다. 서랍이 옆으로 들어나는 것 같다고 생각합니다.
arr = {'a' : [1, 2, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9],
'd' : [10, 11, 12]}
tmp = pd.DataFrame(arr, index=['ㄱ', 'ㄴ', 'ㄷ'])
print(tmp)
>>>
a b c d
ㄱ 1 4 7 10
ㄴ 2 5 8 11
ㄷ 3 6 9 12
print(tmp.sum(axis=0)) # 각 열의 모든 행에서 동작
print(tmp.sum(axis=1)) # 각 행의 모든 열에서 동작
>>>
a 6
b 15
c 24
d 33
>>>
ㄱ 22
ㄴ 26
ㄷ 30
axis= 0은 각 행들의 해당하는 컬럼들의 요소를 모두 더해서 특정 컬럼의 합이 출력됩니다. 그래서 결과도 a, b, c, d 컬럼으로 출력됩니다.
즉, 행 ㄱ과 행 ㄴ, 행 ㄷ에 해당하는 a 컬럼의 요소를 모두 더한 값이 출력됩니다.
axis=1은 각 열들의 해당되는 행들의 요소를 모두 더해서 특정 행의 합이 출력됩니다. 그래서 결과도 ㄱ, ㄴ, ㄷ 행으로 출력됩니다.
연산 과정이 아닐 때
print(tmp.drop(['c'], axis=1)) # c 컬럼에 한해서 각 행의 모든 열에서 동작
>>>
a b d
ㄱ 1 4 10
ㄴ 2 5 11
ㄷ 3 6 12
정직하게 컬럼 c만 삭제가 됩니다.
728x90
'[머신러닝] > [Numpy, Pandas]' 카테고리의 다른 글
[Numpy] argsort() (0) | 2024.04.16 |
---|---|
[Pandas] 판다스 2.0 버전 이상 원-핫 인코딩 표시 문제 해결 (0) | 2023.12.04 |
[Pandas] groupby 2.0 version 이후 (0) | 2023.10.25 |
[Numpy] 넘파이 랜덤 함수 정리 (0) | 2023.08.30 |
[Pandas] 판다스 csv, sort_values(), by, ascending, 통계량 계산 (0) | 2023.06.21 |