파이썬 DataFrame 특정 column으로 subset만들기 (+df.filter)

bearwoong

·

2022. 10. 4. 08:30

728x90
썸네일
썸네일

 

DataFrame에서는 특정 column만 선택하여 새로운 DataFrame으로 만들 수 있습니다.

DataFrame은 Series의 dictionary라고 생각했을 때 [ ]를 이용하여 인덱싱 하는 것처럼 column을 선택하여 subset을 만들게 됩니다.

 

아래 예제에서 사용한 csv파일은 한국에 상장된 주식들의 종목명, 종가, 주당배당금 등 가격과 관련된 데이터들을 가지고 있습니다.

csv 파일의 head는 아래와 같습니다.

 

import pandas as pd
df = pd.read_csv("per_pbr_dividend.csv", encoding = 'cp949')
df.head()

 

예제 csv파일
예제 csv파일

 

특정 column으로 subset 만들기

 

[ ]으로 인덱싱하듯 column을 선택하여 subset을 만들 수 있습니다.

다만 [ ] 안에 [ ]로 넣어주어야 DataFrame으로 subset이 만들어집니다.

df['종목명'] 은 당연히 '종목명'column을 Series로 가져올 것이고 df[['종목명']] 이렇게 넣어주어야 column이 한 개인 DataFrame이 됩니다.

 

위의 csv파일에서 df['종목명']을 하게되면 위에서 언급한 것 처럼 Series로 '종목명' column을 가져옵니다.

 

df['종목명'].head()
type(df['종목명'])

 

df[ ] 결과값
df[ ] 결과

 

df[['종목명']]처럼 [ ] 안에 [ ] 으로 column명을 넣어주면 위와는 다르게 DataFrame 형태가 됩니다.

 

df[['종목명']].head()
type(df[['종목명']])

 

df[ [ ] ] 결과
df[ [ ] ] 결과

 

특정 column들로 subset 만들기

 

column명 직접 입력

 

[ ] 안에 여러 개의 column명을 직접 입력하여 subset을 만들 수 있습니다.

예를들어 종목명과 배당수익률만으로 subset을 만들기 위해서는 df[['종목명', '배당수익률']] 을 새로운 DataFrame에 넣어주면 됩니다.

 

new_df = df[['종목명', '배당수익률']]
new_df.head()

 

column명으로 subset 만들기
column명으로 subset 만들기

 

df.filter(like= )

 

column명을 직접 입력하기에는 입력해야할 column이 너무 많다면 filter를 사용할 수 있습니다.

filter는 column명에 특정 숫자 또는 글자가 들어가면 해당 column을 모두 가져와서 subset을 만들어줍니다.

예를들어 column명에 '배당'이라는 글자가 들어가는 column을 모두 가져오려면 df.filter(like = '배당') 을 사용하면 됩니다.

 

divi_df = df.filter(like = '배당')
divi_df.head()

 

df.filter(like = ) 결과
df.filter(like = ) 결과

 

df.filter(regex = ' ' )

 

regex = '정규표현식'의 형태로 사용할 수 있습니다. 

이 경우 정규표현식에 맞는 column을 DataFrame으로 반환하게 됩니다.

df.filter(regex = ".R") 로 사용하면 R앞에 어떤 문자라도 오는 column을 모두 가져옵니다.

 

R_df = df.filter(regex = ".R")
R_df.head()

 

df.filter(regex = ' ' ) 결과
df.filter(regex = ' ' ) 결과

 

함께보면 좋은 포스팅

 

파이썬 DataFrame 인덱싱 하는 방법(df[ ], df.loc[ ], df.iloc[ ])

 

파이썬 DataFrame, Series 리인덱싱 하는 방법 (df.index, df.set_index, df.reindex)

 

파이썬 모듈 (python module) 만들기, 호출하기 - 코드잇

 

반응형