drop() 함수는 Pandas 라이브러리에서 데이터프레임이나 시리즈에서 특정 행이나 열을 삭제할 때 사용되는 메서드다. 주로 데이터 분석을 할 때 필요 없는 데이터나 특정 기준으로 데이터를 정리하고 싶을 때 유용하다.
로우를 삭제할 때는 함수 안에 바로 삭제할 로우의 인덱스 값을 넣어 주면 되고, 컬럼을 삭제할 때는 columns라는 파라미터를 사용해서 삭제할 컬럼의 이름을 넣어 주면 된다.
# married 컬럼 삭제하기
loan_df.drop(columns='married')
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({
'이름': ['철수', '영희', '민수', '지영'],
'수학': [85, 92, 70, 88],
'영어': [78, 88, 95, 76],
'과학': [92, 85, 80, 91]
})
# '민수' 행 삭제
result = df.drop(labels=[2], axis=0)
# '영어' 열 삭제
result = df.drop(labels=['영어'], axis=1)
# 원본 데이터프레임에서 '지영' 행 삭제
df.drop(labels=[3], axis=0, inplace=True)
axis 파라미터 - 연산 방향(컬럼/로우) 결정
drop() 함수를 쓸 때 axis라는 파라미터를 많이 사용하는데, 연산을 컬럼 방향으로 할지, 로우 방향으로 할지 정할 수 있는 함수에서 주로 사용된다.
drop()에서는 이 값에 따라 로우를 삭제할지, 컬럼을 삭제할지 정할 수 있는데, axis의 기본값은 로우를 삭제하는 것을 의미하는 0이다.
컬럼을 삭제할 때는 drop()에서 columns 값에 바로 컬럼명을 넣을 수도 있고, axis 값을 1이나 columns로 줄 수도 있다.
두 방법 모두 같은 결과물을 얻을 수 있지만 전자가 코드도 좀 더 짧고, 이해하기 쉽다는 장점이 있다.
예제)
대출 심사 기준이 변경되어 신청자들의 대출 승낙 여부를 다시 심사해야 한다고 합니다. loan_df에서 loan_status 컬럼을 삭제해 주세요.
import pandas as pd
loan_df = pd.read_csv('data/loan.csv')
loan_df = loan_df.set_index('loan_id')
new_columns = {'married_or_not': 'married',
'self_employed_or_not': 'self_employed',
'applicant_income': 'income',
'loan_amount': 'amount'}
loan_df = loan_df.rename(columns=new_columns)
loan_df.drop('loan_status', axis=1)
결과값