Skip to content

Pandas DataFrame에서 열 삭제하는 방법

Updated on

데이터 과학자로서 DataFrame에서 데이터를 조작하는 것은 가장 일반적인 작업 중 하나입니다. 데이터 처리 워크플로우에서 중요하지 않은 열을 삭제하는 작업이 자주 발생합니다. 이 튜토리얼에서는 Pandas DataFrame에서 열을 삭제하는 방법을 살펴보겠습니다. 열 이름, 인덱스, 여러 열을 기준으로 열을 삭제하는 다양한 방법을 다룰 것입니다.

코드없이 Python Pandas Dataframe에서 데이터 시각화를 빠르게 만들고 싶다면?

PyGWalker는 시각화 기능을 갖춘 탐색적 데이터 분석을 위한 Python 라이브러리입니다. PyGWalker (opens in a new tab)는 pandas dataframe(및 polars dataframe)을 Tableau 스타일의 사용자 인터페이스로 변환하여 Jupyter Notebook 데이터 분석 및 데이터 시각화 워크플로우를 단순화할 수 있습니다.

PyGWalker for Data visualization (opens in a new tab)

Pandas DataFrame 개요

열과 행이 있는 2D 테이블 데이터 구조인 DataFrame을 살펴보기 전에 간단히 개요를 살펴보겠습니다.

데이터프레임에서 각 열은 시리즈입니다. 시리즈는 색인 라벨을 가진 값 배열의 1차원 데이터 구조입니다. 또한, 데이터프레임은 행 및 열 색인을 가질 수 있어 데이터 엑세스가 빠르고 효율적입니다.

Pandas DataFrame은 Python에서 데이터를 처리하고 조작하기 위한 강력한 도구입니다. 복잡한 데이터 분석, 데이터 정리, 데이터 전환 및 데이터 시각화 작업을 수행할 수 있습니다.

Pandas DataFrame에서 열 삭제

이제 Pandas DataFrame에서 열을 삭제하는 과정을 시작해보겠습니다. 요구 사항에 따라 DataFrame에서 열을 삭제하는 방법은 여러 가지가 있습니다. 아래에서 일부 인기있는 방법을 다룰 것입니다.

drop 메서드를 사용하여 열 삭제

DataFrame에서 열을 가장 쉽게 제거하는 방법은 drop 메서드를 사용하는 것입니다. drop 메서드를 사용하고 매개 변수 axis = 1을 사용하여 열을 제거하려는 것을 나타낼 수 있습니다.

# 샘플 DataFrame 생성
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# 'city' 열 제거
df = df.drop('city', axis=1)
print(df.head())

결과:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

위의 예에서는 name, age, city 3개 열이 포함된 샘플 DataFrame을 만들었습니다. drop 메서드와 매개 변수 axis = 1을 사용하여 city 열을 제거했습니다. 그런 다음 nameage 열만 있는 업데이트 된 DataFrame을 출력했습니다.

Subsetting 메서드를 사용하여 열 삭제

DataFrame에서 열을 제거하는 또 다른 방법은 subsetting 메서드 []del 문을 사용하는 것입니다. del 문은 열을 DataFrame 객체에서 직접 제거합니다.

# 샘플 DataFrame 생성
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# 'city' 열 삭제
del df['city']
print(df.head())

결과:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

위의 예에서는 name, age, city 3개 열이 포함된 샘플 DataFrame을 만들었습니다. 색인 대괄호 처리 구문 []del 문을 사용하여 city 열을 제거했습니다. 그린 다음 nameage 열만 있는 업데이트 된 DataFrame을 출력했습니다.### 여러 열 삭제

데이터프레임에서 여러 열을 삭제해야 할 때가 있습니다. 여러 열을 삭제하려면 drop 메서드에 열 이름의 리스트를 사용하여 여러 열을 제거할 수 있습니다.

# 샘플 데이터프레임 생성
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo'], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# 'city'와 'occupation' 열 제거
df = df.drop(['city', 'occupation'], axis=1)
print(df.head())

결과:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

위 예제에서는 name, age, city, occupation 네 개의 열을 가진 샘플 데이터프레임을 생성했습니다. drop 메서드에 열 이름의 리스트를 전달하여 cityoccupation 열을 제거했습니다. 그 뒤 최종적으로 nameage 두 개의 열만 가지는 데이터프레임을 출력했습니다.

열 인덱스를 사용하여 열 삭제

열 인덱스를 사용하여 데이터프레임에서 열을 삭제할 수도 있습니다. 이 경우 drop 메서드에 columns 매개변수와 제거할 열의 인덱스를 지정하면 됩니다.

# 샘플 데이터프레임 생성
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# 인덱스 2인 'city' 열 제거
df = df.drop(df.columns[2], axis=1)
print(df.head())

결과:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

위 예제에서는 name, age, city 세 개의 열을 가진 샘플 데이터프레임을 생성했습니다. drop 메서드에 columns 매개변수와 열 인덱스(2)를 지정하여 city 열을 제거했습니다. 그 뒤 최종적으로 nameage 두 개의 열만 가지는 데이터프레임을 출력했습니다.

조건을 만족하는 열 삭제

drop 메서드를 사용하여 조건에 따라 열을 제거할 수도 있습니다. 예를 들어 모든 값이 NaN인 열을 모두 제거할 수 있습니다.

# 'city' 열의 모든 값이 NaN인 샘플 데이터프레임 생성
import pandas as pd
import numpy as np
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': [np.nan, np.nan, np.nan, np.nan], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# 모든 값이 NaN인 열 제거
df = df.dropna(how='all', axis=1)
print(df.head())

결과:

     name  age  occupation
0    Alex   20    Engineer
1     Bob   25      Doctor
2  Clarke   19      Artist
3   David   18      Lawyer

위 예제에서는 name, age, city, occupation 네 개의 열을 가진 샘플 데이터프레임을 생성했습니다. city 열의 값을 모두 NaN으로 설정하였습니다. dropna 메서드에 how='all'axis=1 매개변수를 지정하여 모든 값이 NaN인 열을 제거하였습니다. 그 뒤 최종적으로 name, age, occupation 세 개의 열만 가지는 데이터프레임을 출력했습니다.

결론

판다스 데이터프레임에서 열을 제거하는 것은 데이터 과학자로서 꼭 알아야 하는 필수적인 작업 중 하나입니다. 이 튜토리얼에서는 열 이름, 인덱스, 여러 열을 기준으로 열을 제거하는 다양한 방법에 대해 다루었습니다. 이를 통해 데이터프레임을 다루는 작업의 효율성과 정확성을 높이는 데 도움이 되었을 것입니다.

자주 묻는 질문

  1. 파이썬 DataFrame에서 열을 삭제하는 방법은 무엇인가요?

    파이썬 DataFrame에서 열을 삭제하기 위해서는 drop() 메서드를 사용하고 axis 매개변수를 1로 설정하여 열 이름을 지정합니다. 이렇게 하면 DataFrame에서 지정한 열이 제거됩니다. 또는 del 키워드를 사용하여 해당 열을 직접 삭제할 수도 있습니다.

  2. 파이썬 DataFrame에서 여러 열을 동시에 삭제할 수 있나요?

    네, 파이썬 DataFrame에서는 여러 열을 동시에 삭제할 수 있습니다. drop() 메서드에 열 이름의 리스트를 전달하거나 drop() 메서드를 여러 번 사용하여 각각 다른 열 이름을 지정할 수 있습니다. 이렇게 하면 지정한 모든 열이 DataFrame에서 제거됩니다.

  3. 파이썬 DataFrame에서 특정 조건에 따라 열을 삭제할 수 있나요?

    네, 파이썬 DataFrame에서는 특정 조건에 따라 열을 삭제할 수 있습니다. 불리언 인덱싱이나 loc 인덱서를 사용하여 원하는 조건을 충족하는 열을 선택한 다음 drop() 메서드를 사용하여 해당 열을 DataFrame에서 제거할 수 있습니다. 이를 통해 특정 기준에 따라 열을 선택적으로 삭제할 수 있습니다.