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

댓글

댓글 1개
날짜 투표수
  • axis에 대한 전반적인 내용 설명입니다. 참고 부탁드립니다.

    http://taewan.kim/post/numpy_sum_axis/

     

    axis = 0 자체가 행(가로) 방향, 보시기에는 열방향(교재에도 열로 출력했다라고 표시되었지만, 위 링크를 자세히 살펴보시면 axis=0은 x축, axis=1은 y축의 정의가 맞습니다)으로 생각할 수 있으나

    인덱스로 볼 때는 행 방향으로 출력되었다고 생각합니다.

     

    저도 처음 공부할 때는 무지 해깔리게 생각이 되었는데,

     

    열방향 결과 값을 행방향으로 나열해서 표시하였구나라는 결론으로 생각하시면 쉽게 이해 될 듯 싶습니다.

    0

댓글을 남기려면 로그인하세요.

 

원하는 것을 찾지 못하셨나요?

질문하기