판다스에서 평균을 계산하거나 drop 함수 등을 사용할 때 파라미터에 axis=1을 넣는 경우가 많다. 습관적으로, 혹은 남들이 쓰는 코드에 그렇게 되어 있어서 똑같이 따라 쓰는 경우가 많았는데 이번 기회에 제대로 axis=1의 뜻을 알아보자.
drop함수의 파라미터 중 하나인 axis에 대한 설명이다.
보면 index를 drop하려면 axis=0으로 설정하고, 컬럼을 drop하려면 axis=1로 설정하라고 써있다.
즉, aix=0은 행을 기준으로 동작하는 것이고 axis=1은 열을 기준으로 동작하는 것이다.
heart.csv파일에서 타겟 변수는 output이고 나머지 변수들은 모두 X변수이다.
train, test 분리를 위해서 X,y를 지정해줘야 하는데 이 때 X는 heart 데이터에서 output 변수만 drop하고 나머지 변수만 가져오면 된다.
이때 drop함수를 사용하는데 output 전체 열을 지워야 하기 때문에 axis=1로 설정해주면 된다.
만약 axis=0으로 설정하면? output이 행이 아니기 때문에 당연히 에러가 난다.
heart = pd.read_csv('heart.csv')
X = heart.drop(['output'], axis=1)
y = heart['output']
X.head()
X = heart.drop([0], axis=0)
X.head()
만약 0번째 행을 지우고 싶다면 위와 같이 코드를 짜면 된다. 첫번째 행이 사라진 것을 확인할 수 있다.
drop 뿐만 아니라 mean, rank와 같은 판다스의 다른 함수와 numpy에 대해서도 동일하게 작용한다.
한가지 더, drop 함수는 inplace=True로 설정해야만 원본 데이터가 변경되고 그렇지 않으면 원본 데이터는 그대로 유지된다. 보통은 원본 데이터는 원본 그대로 놔두기 때문에 inplace=True로 설정하는 일은 극히 드물긴 하지만.. 만약 원본 데이터까지 바꿔주고 싶다면 inplace=True로 설정하면 된다.
'파이썬 > 파이썬 기초' 카테고리의 다른 글
편향(bias) 분산(variance) 트레이드 오프와 MSE (0) | 2021.07.18 |
---|---|
지도 학습 분류와 회귀의 차이와 성능 평가 지표 (0) | 2021.07.18 |
파이썬 라이브러리 - numpy, pandas, matplotlib 등 기본 라이브러리 개념 (0) | 2021.07.17 |
빅데이터 분석 기사 자격증 파헤치기! 필기, 실기 시험 유형과 응시자격 (0) | 2021.07.17 |
사이킷런 분류기의 예측 불확실성 추정 함수 - decision_functon과 predict_proba (0) | 2021.07.05 |