pandas 의 filter 함수로 변수 선택하기

2020. 5. 19. 22:46분석 Python/Pandas Tip

728x90

1. regex를 이용해서 특정 조건을 만족하는 변수만 찾아보기 

a  에서는 _ 다음에 숫자 1~9 , 영어 a-z , 한글 가-힣 이 나오면 선택하기

b  에서는 _ 다음에 숫자 0~5 , 영어 a-z 나오면 선택하기

col = ["a_1111","a_23.0","a_3_rk","a_가","a_a", "a_0.0"] + ["b_1","b_2","b_89","b_가","b_a","b_0"]
arr = np.random.uniform(size=(10,len(col)))
data = pd.DataFrame(arr, columns=col)
can = ["a","b"]
filters = "_[1-9a-zA-Z가-힣]|".join(can)+"_[0-5a-zA-Z]"
filters

data.filter(regex = filters , axis = 1)

2. 앞,뒤 조건을 여러개 조건들중 하나를 맞추고 중간에는 아무거나 뽑기

예) 앞에는 c또는 d가 오고 중간에는 아무거나 나오고 맨 끝에는 a또는 b인 것을 찾는 정규식 표현 방법

data.filter(regex="^(c|d)[\d\D\w\W\s\S]+(a|b)$")

 

 

예시들

끝~

728x90