이번 글에서는 유명한 Iris 데이터셋을 사용하여 판다스를 사용해 원하지 않는 데이터를 삭제하는 방법을 정리해봤습니다.
먼저 판다스 라이브러리를 불러오고 데이터셋을 불러오겠습니다.
import pandas as pd
iris = pd.read_csv("iris.csv")
iris 데이터셋의 첫 5줄을 확인하면 아래와 같습니다.
데이터셋 크기 (행, 열 개수) 확인하기
iris.shape
위 코드를 실행하면 (150, 5)가 출력됩니다. (행, 열) 순서로 iris 데이터셋에는 150개의 행과 5개의 열으 이루어져 있다는 걸 확인할 수 있습니다.
행 삭제하기
1. drop으로 인덱스 index 사용해서 삭제하기
데이터프레임.drop(인덱스)를 사용하여 삭제하고 싶은 행의 인덱스를 입력하면 됩니다.
new_df = old_df.drop(10, axis=0)
넘파이와 같이 판다스에서 행은 axis=0이며 열은 axis=1로 지정할 수 있습니다.
디폴트 값이 axis=0이기 때문에 행을 삭제할 경우 생략 가능합니다.
한꺼번에 여러 개의 행을 삭제하고 싶을 경우 인덱스를 리스트 형식으로 넣는 것도 가능합니다.
new_iris = iris.drop([1,2])
new_iris.head()
범위를 사용하여 행 삭제하기
iris2 = iris.drop(labels=range(40, 45), axis=0)
2. 파이썬 slice 사용하기
파이썬의 슬라이스를 사용하여 데이터 선택 및 삭제가 가능합니다.
- data[:끝] - e.g. data=data[:10] 첫 9행 제외하고 다 삭제하기
- data[시작:] - e.g. data=data[10:] 첫 10행 삭제하기
- data[시작:끝]
iris[1:10]
열 삭제하기
1. drop으로 열 이름을 사용해서 삭제하기
iris.drop('variety', axis=1) 또는 iris.drop('variety', axis = 'columns')
리스트를 사용해서 여러 개의 열을 한 번에 삭제할 수 있습니다.
iris = iris.drop(['sepal.length', 'sepal.width'], axis=1)
숫자를 사용하여 삭제도 가능합니다.
밑은 iris 데이터셋의 첫 번째 (0), 두 번째 (1), 네 번째 (3) 열을 삭제하는 예제 코드입니다.
iris = iris.drop(iris.columns[[0,1,3]], axis=1)
inplace = True or False?
- inplace=True: 기존 데이터 프레임을 변경하기
- inplace=False: 데이터프레임을 변경 후 copy를 return 하기
판다스에서 drop을 사용할 때 inplace의 default 값은 False입니다.
위의 예제와 같이 drop에서 inplace를 따로 지정을 해주지 않으면 기존 데이터 프레임은 보존됩니다.
inplace=False 경우 변경된 (행이나 열이 제거된) 데이터 프레임의 copy가 return이 되기 때문에 데이터 프레임을 지정해주면 됩니다.
inplace=True를 쓰는 경우 기존 데이터 프레임에 변화가 생깁니다.
"inplace=True" 설정값으로 적용하니 기존 데이터 프레임에서 'variety' 열이 사라진 걸 확인할 수 있습니다.
'ᐧ༚̮ᐧ Data Science | AI > Python' 카테고리의 다른 글
데이터 분석에 쓰이는 파이썬 라이브러리 소개 (0) | 2021.09.24 |
---|---|
[파이썬] 판다스 pandas csv 파일 불러오기 & 데이터 살펴보기 (0) | 2021.09.23 |
[Python] 아나콘다 (Anaconda) 다운로드 및 설치하기 feat. 주피터 노트북, 파이썬/콘다 버전 확인 (0) | 2021.06.17 |
[파이썬] 판다스 pandas 기초: 판다스의 자료 구조 series와 dataframe (0) | 2021.06.13 |
[파이썬/Pandas] 막대 그래프 그리기 (0) | 2021.04.27 |