반응형
질문
기존 데이터프레임을 기반으로 열 선택에 따라 뷰(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']]
반응형
댓글