Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 pandas로 DataFrame에서 하나 이상의 열(컬럼) 삭제하는 방법

pandas를 사용하다 보면 DataFrame에서 불필요한 열(column)을 제거해야 하는 경우가 자주 발생합니다. 이 글에서는 하나의 열을 삭제하는 방법부터 여러 개의 열을 한 번에 삭제하는 방법까지 다양한 방식을 예제와 함께 살펴보겠습니다.

먼저 다음과 같은 DataFrame이 있다고 가정해 보겠습니다.

 one  two three
0 1    2    3
1 4    5    6

하나의 열('one')을 삭제한 결과는 다음과 같습니다.

 two three
0 2    3
1 5    6

두 개 이상의 열('one', 'two')을 삭제한 결과는 다음과 같습니다.

 three
0 3
1 6

방법 1: del 키워드 사용

가장 간단한 방법은 파이썬의 del 키워드를 사용하는 것입니다.

  • DataFrame을 정의합니다.
  • 아래와 같이 특정 열을 삭제합니다.
del df['one']

예제 코드

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data,columns=('one','two','three'))
print("Before deletion\n", df)
del df['one']
print("After deletion\n", df)

실행 결과

Before deletion
 one two three
0 1    2    3
1 4    5    6
After deletion
 two three
0 2    3
1 5    6

del은 원본 DataFrame을 직접 수정(in-place)하며, 한 번에 하나의 열만 삭제할 수 있다는 점에 유의하세요.

방법 2: pop() 함수 사용

pop() 함수를 사용하면 열을 삭제하면서 동시에 해당 열의 데이터를 반환받을 수 있습니다.

  • DataFrame을 정의합니다.
  • 아래와 같이 pop 함수로 특정 열을 삭제합니다.
df.pop('one')

예제 코드

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data,columns=('one','two','three'))
print("Before deletion\n", df)
df.pop('one')
print("After deletion\n", df)

실행 결과

Before deletion
 one two three
0 1    2    3
1 4    5    6
After deletion
 two three
0 2    3
1 5    6

pop() 역시 원본 DataFrame을 직접 수정하며, 삭제된 열의 Series를 반환한다는 점이 del과의 차이점입니다.

방법 3: drop() 함수로 여러 열 한 번에 삭제

두 개 이상의 열을 삭제할 때는 drop() 함수를 사용하는 것이 가장 효율적입니다. inplace=True 옵션을 지정하면 원본 DataFrame이 직접 수정됩니다.

  • DataFrame을 정의합니다.
  • 아래와 같이 여러 열을 한 번에 삭제합니다.
df.drop(columns=['one','two'],inplace = True)

예제 코드

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data,columns=('one','two','three'))
print("Before deletion\n ", df)
df.drop(columns=['one','two'],inplace = True)
print("After deleting two columns\n", df)

실행 결과

Before deletion
 one two three
0 1    2    3
1 4    5    6
After deleting two columns
 three
0 3
1 6

정리

세 가지 방법을 비교하면 다음과 같습니다.

  • del df['열이름']: 단일 열 삭제에 적합하며, 문법이 간단합니다.
  • df.pop('열이름'): 열을 삭제하면서 해당 데이터를 변수에 저장해 활용할 수 있습니다.
  • df.drop(columns=[...], inplace=True): 여러 열을 한 번에 삭제할 수 있고, 리스트로 열 이름을 전달하므로 유연성이 뛰어납니다.

상황에 맞는 방법을 선택하여 DataFrame의 열을 효율적으로 관리해 보세요.