Python

(Python) 데이터프레임에서 특정 열을 제외하고 선택하기

5사 2022. 2. 22. 17:58

1. seaborn의 내장 데이터셋 목록 확인하기

seaborn.get_dataset_names() : seaborn의 내장된 데이터 셋 목록을 확인하기

import seaborn as sns
sns.get_dataset_names() #seaborn의 내장된 데이터 셋 목록을 확인하는 방법
['anagrams',
 'anscombe',
 'attention',
 'brain_networks',
 'car_crashes',
 'diamonds',
 'dots',
 'exercise',
 'flights',
 'fmri',
 'gammas',
 'geyser',
 'iris',
 'mpg',
 'penguins',
 'planets',
 'taxis',
 'tips',
 'titanic']

 

2. titanic 데이터셋을 불러와서 titanic이라는 변수에 담기

seaborn.load_dataset('데이터셋 명') : seaborn에 내장된 데이터셋 불러오기

titanic = sns.load_dataset('titanic')
titanic.head() # 상위 5개 행 출력

 

3. titanic 데이터 프레임에서 특정 열을 제외하고 가져오기

parch, deck 컬럼을 제외하고 가져오는 방법은?

 

방법 1) dataframe.columns != '컬럼명'

titanic.loc[:, (titanic.columns != 'parch') & (titanic.columns != 'deck')]

 

방법 2) ~dataframe.columns.isin( ['컬럼명', '컬럼명'] )

~titanic.columns.isin(['parch', 'deck'])
array([ True,  True,  True,  True,  True, False,  True,  True,  True,
        True,  True, False,  True,  True,  True])

위의 코드를 실행하면 parch 컬럼과 deck 컬럼에 해당하는 부분은 FALSE로 반환되고 있다.

위의 코드를 loc의 조건으로 넣어주면 데이터프레임 형태로 반환된다.

 

titanic.loc[:, ~titanic.columns.isin(['parch', 'deck']) ]

 

방법 3) one-line for문 사용하기

[i for i in list(dataframe.columns) if i not in ['제외할 컬럼명1', '제외할 컬럼명2']]

[i for i in list(titanic.columns) if i not in ['parch', 'deck']]
['survived',
 'pclass',
 'sex',
 'age',
 'sibsp',
 'fare',
 'embarked',
 'class',
 'who',
 'adult_male',
 'embark_town',
 'alive',
 'alone']

위의 코드를 실행하면 parch 컬럼과 deck 컬럼을 제외한 titanic의 컬럼 목록이 반환된다.

 

titanic.loc[:, [i for i in list(titanic.columns) if i not in ['parch', 'deck']] ]
# titanic[ [i for i in list(titanic.columns) if i not in ['parch', 'deck']] ]

위의 코드를 loc의 조건이나 데이터프레임 열 선택 조건으로 주면 된다.