본문 바로가기
프로그래머스/데이터분석 데브코스

프로그래머스 데이터분석 데브코스 7-5

by 포잉띠 2024. 3. 29.

레퍼런스의 지진해일이 드디어 지나갔다.

계속 써보면서 계속 찾아보는것이 더 빠르게 익혀지기에 기억에 남는, 진짜 찾아보지 않는이상 모르는, 새로 접한것들을 가볍게 정리할 예정이다.

 

조건문

df[df['A'] > 3]

 

이렇게 사용하면 df['A']에서 3 이상인 것들만 추출한다.

또한 여기서 df['A'] > 3은 'A' 컬럼의 각 요소에 대해 > 3이라는 조건을 벡터화 방식으로 적용하고, 그 결과는 각 요소가 조건을 만족하는지 여부에 따른 Boolean 값의 시리즈가 된다. 

 

벡터화 연산

벡터화 연산을 배우지는 않았지만 강력한 기능인 것 같아서 정리하려고 한다.

predictions = rf.predict(ds_test)
n_predictions = (predictions > 0.5).astype(bool)

이전에 TensorFlow의 Tfdf Random Forest 모델에서 결과값을 Boolean 값으로 추출하기 위해 사용한 코드이다.

사실 위의 코드는 다른사람이 한 것을 보고 따라한 것인데, numpy array에서 어떻게 하면 더 쉽게 Boolean으로 시리즈, 리스트를 만들까 고민하다가 발견했다. 

당시에는 이게 되네? 하고 말았지만 최근 제대로 배우기 시작하고 다시 코드들을 몇개 열어보면서 numpy array에 비교연산자 하나 딱 했는데 어떻게 연산이 되는거지? 하는 의문이 생겨 찾아봤고 거기서 얻은 답이 위와 같은 문법은 벡터화 연산 이라는 것이다.numpy array나 pandas DataFrame에 사용할 때 최대효율을 낸다고 한다.일반 Python의 Iterable한 객체에는 벡터화 연산이 적용되지 않는다고 한다.

 

contains(pattern, case, regex)

문자열에 특정 문자, 패턴 포함 여부를 확일할 때 정규표현식 사용이 가능하다고 한다.

 

 

startswith(tuple)

tuple로 예를들어 ('a', 'b', 'c') 이런식으로 전달하면 a로 시작하는, b로 시작하는, c로 시작하는것들을 함께 조회할 수 있다고 한다. 단순 단어, 문자로만 사용했었는데 지식이 늘었다.

 

 

pivot_table

excel의 pivot table처럼 DataFrame을 출력해주는 메소드라고 한다.

인자값이 매~우 많아서 가볍게 정리해 주셨는데

 

A 별 B 의 C 함수값을 D 인덱스로 확인하기

A == colums

B == values

C == aggfunc

D == index

 

정도가 보통 많이 쓰이는 인자들이라고 한다.

 

agg

agg({column : func , column : func})

정도로만 알고있었는데

 

agg({column : func , column : [func, func, func, func, func, func,,,,,]})

처럼 사용할 수도 있다고 한다.

 

groupby 관해서도 배우긴 했는데 어쩔수 없이 python에서 해야하는거 아니면 sql로 진행하는게 나아보인다.알아두면 좋을 것 같으니 조금 익숙해지면 따로 다시 정리한 것을 올리겠다.