본문 바로가기

프로그래밍/Python

[파이썬, Python] Pandas.DataFrame 행/열 제거 (drop)

728x90

DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False, errors='raise')

option

 - labels : 제거할 index or column 입력

 - axis : [0,1] 중 선택

   axis=0 인 경우 labels를 index로 인식

   axis=1 인 경우 labels를 column으로 인식

 - index : 삭제할 index 리스트를 입력합니다.

 - columns : 삭제할 column 리스트를 입력합니다.

 - inplace : [True, False] 중 선택

   inplace=True 인 경우, 원본을 변경하겠다.

   inplace=False 인 경우, 원본은 그대로 두고 변경된 데이터를 반환하겠다.

 - errors : ['raise','ignore'] 중 선택

   errors='raise' 인 경우, 없는 index나 column을 입력  시 에러 띄움

  errors='ignore' 인 경우, 없는 index나 column을 입력 해도 무시하고 진행

 

example

DataFrame 생성

import pandas as pd
df = pd.DataFrame({'class':['A','A','A','B','B','B'],
                   'num':[1,2,2,2,1,1],
                   'price':[20,10,12,30,90,12]})

df

drop(labels=[],axis=0)

df.drop(labels=[1], axis=0)

1번 인덱스의 데이터가 사라진 것을 확인할 수 있습니다.

 

drop(labels=[],axis=1)

df.drop(labels=['class'], axis=1)

class column이 사라진 것을 확인할 수 있습니다.

drop(index=[])

df.drop(index=[0,5])

0,5 인덱스의 데이터가 사라졌습니다.

drop(columns=[])

df.drop(columns=['class','num'])

두 column이 제거되었습니다.

 

drop(errors=['raise','ignore'])

df.drop(columns=['class','num','date'])
df.drop(index=[0,6], errors='raise')

errors의 default는 'raise'이므로 두 줄 모두 에러 발생합니다.

df.drop(columns=['class','num','date'], errors='ignore')
df.drop(index=[0,6], errors='ignore')

errors='ignore'로 변경해주면 에러 발생하지 않고 매칭되는 index나 column만 제거해줍니다.

drop(inplace=[True, False])

df2 = df.drop(columns=['class','num'])
df.drop(columns=['class','num'], inplace=True)

inplace의 default는 False이므로 첫 번째 줄은 반환 값을 저장해주어야 하고,

inplace=True로 해주면 df 원본이 변환됩니다.