본문 바로가기
Python/Python FAQ

Python 판다스에서 열 집합 선택/제외하기 [중복], Selecting/excluding sets of columns in pandas [duplicate]

by 베타코드 2023. 10. 17.
반응형

질문


기존 데이터프레임을 기반으로 열 선택에 따라 뷰(view) 또는 데이터프레임을 생성하고 싶습니다.

예를 들어, 데이터프레임 df1에서 두 개의 열을 제외한 모든 열을 포함하는 데이터프레임 df2를 생성하고 싶습니다. 다음과 같이 시도해봤지만 작동하지 않았습니다:

import numpy as np
import pandas as pd

# 열 A,B,C,D를 포함하는 데이터프레임 생성
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))

# 'B'와 'D'를 제외한 모든 열을 가진 두 번째 데이터프레임 df2 생성 시도
my_cols = set(df.columns)
my_cols.remove('B').remove('D')

# 에러 발생 ("unhashable type: set")
df2 = df[my_cols]

무엇이 잘못되었을까요? 아마도 더 일반적으로, 판다스에서 데이터프레임으로부터 임의의 열 집합을 선택하거나 제외하기 위해 어떤 메커니즘이 제공되나요?


답변


당신은 필요하지 않은 열을 삭제하거나 필요한 열을 선택할 수 있습니다.

# DataFrame.drop 사용
df.drop(df.columns[[1, 2]], axis=1, inplace=True)

# 이름으로 삭제
df1 = df1.drop(['B', 'C'], axis=1)

# 원하는 열 선택
df1 = df[['a','d']]
반응형

댓글