Python 코딩 Master Course - Advance 21강 질문
- 과정명: Python 코딩 Master Course - Advance 21강
- 강사명: 신동욱 강사
print(df.apply(print_me, axis=0)) # axis=0 -> x축 방향
이 코딩에서 결과값
0 10 1 20 2 30 Name: a, dtype: int64 0 20 1 30 2 40 Name: b, dtype: int64 a None b None dtype: object
axis=0은 x축방향 연산이라고 하셨잖아요 그런데 결과값은 위에서처럼 y축방향(열)이 출력되니까
머리가 복잡합니다
a b 0 10 20 1 20 30 2 30 40
이 df행렬에서 x축방향이면 (10,20) , (20,30), (30,40) 이렇게 출력되야 맞는거 아닌가요?
그리고 마지막 부분에 나오는 a None b None 이부분은 왜 나오는건지 설명 부탁드립니다
추가로
def avg_2_apply(row):
sum=0
for item in row:
sum += item
return sum/df.shape[1] # df.shape[1] : df의 열의 갯수 2
print(df.apply(avg_2_apply, axis=1))
이 코딩에서도 axis=1이니까 y축방향으로 세로로 연산해야하니까
(10+20+30)/2=30 , (20+30+40)/2=45가 나와야하는거 아닌가요?
0 15.0 1 25.0 2 35.0 dtype: float64
왜 x축 방향인 가로로 원소들을 연산한 이런 값들이 나오는건가요?
0
댓글
axis에 대한 전반적인 내용 설명입니다. 참고 부탁드립니다.
http://taewan.kim/post/numpy_sum_axis/
axis = 0 자체가 행(가로) 방향, 보시기에는 열방향(교재에도 열로 출력했다라고 표시되었지만, 위 링크를 자세히 살펴보시면 axis=0은 x축, axis=1은 y축의 정의가 맞습니다)으로 생각할 수 있으나
인덱스로 볼 때는 행 방향으로 출력되었다고 생각합니다.
저도 처음 공부할 때는 무지 해깔리게 생각이 되었는데,
열방향 결과 값을 행방향으로 나열해서 표시하였구나라는 결론으로 생각하시면 쉽게 이해 될 듯 싶습니다.
댓글을 남기려면 로그인하세요.