판다스(Pandas)는 데이터 분석과 데이터 전처리에 가장 널리 사용되는 파이썬 라이브러리 중 하나입니다. 이 글에서는 판다스 데이터프레임(DataFrame)을 만드는 방법과 함께, drop() 함수를 활용해 원하는 행(row)이나 열(column)을 선택적으로 삭제하는 방법을 예제와 함께 살펴보겠습니다.
행(Row) 삭제하기
아래 예제에서는 iris.csv 파일을 데이터프레임으로 불러옵니다. 먼저 기존 데이터프레임의 구조를 확인한 후, drop() 함수에 삭제하고자 하는 인덱스 값을 리스트로 전달해 해당 행들을 제거합니다. 여기서 inplace=True 옵션은 별도의 변수에 저장하지 않고 원본 데이터프레임에 변경 사항을 바로 적용하겠다는 의미입니다.
실행 결과를 보면 맨 아래 표시된 행의 개수가 150개에서 147개로 정확히 3개 줄어든 것을 확인할 수 있습니다.
예제 코드
import pandas as pd
# CSV 파일로 데이터프레임 생성
data = pd.read_csv("E:\\iris1.csv", index_col="Id")
print(data)
# 지정한 인덱스 값의 행 삭제
data.drop([6, 9, 10], inplace=True)
# 결과 출력
print(data)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
Id
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
. .. … .… .…..……
[150 rows x 5 columns]
After Dropping
SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
Id
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
149 6.2 3.4 5.4 2.3 Iris-virginica
150 5.9 3.0 5.1 1.8 Iris-virginica
……………….
[147 rows x 5 columns]
열(Column) 삭제하기
데이터프레임에서 열을 삭제할 때는 axis 매개변수를 사용합니다. drop() 함수에서 axis=1로 설정하면 열 방향으로 동작하며, 삭제할 열 이름을 리스트 형태로 전달하면 됩니다. 참고로 axis=0(기본값)은 행 방향을 의미합니다.
실행 결과를 보면 열의 개수가 5개에서 3개로 줄어든 것을 확인할 수 있습니다.
예제 코드
import pandas as pd
# CSV 파일로 데이터프레임 생성
data = pd.read_csv("E:\\iris1.csv", index_col="Id")
print(data)
# 지정한 열 이름의 열 삭제
data.drop(['SepalWidthCm', 'PetalLengthCm'], axis=1, inplace=True)
print("After Dropping")
# 결과 출력
print(data)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
Id
1 5.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
. . .… .… .…. .……
[150 rows x 5 columns]
After Dropping
SepalLengthCm PetalWidthCm Species
Id
1 5.1 0.2 Iris-setosa
2 4.9 0.2 Iris-setosa
3 4.7 0.2 Iris-setosa
.....….
[150 rows x 3 columns]