본문 바로가기

파이썬/파이썬 기초

axis=1 뜻, 판다스 drop함수로 간단하게 알아보기

판다스에서 평균을 계산하거나 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로 설정하면 된다.