파이썬 데이터 분석 관심의 급등세 지속. 그리고, 데이터분석을 위한 활용 예
2022-05-12
프로그래밍에 대한 일반적인 관심도 얼마간은 증가하는 추세를 보이고 있으나
그와는 비교할 수 없을 정도로 큰 폭의 상승세를 [파이썬 데이터 분석]이 보이고 있음
그만큼 데이터 분석에서 파이썬 Python 을 사용하는 이점이 많고, 그 덕에 사용자 층이 점점 더 늘어나 가속적인 관심을 받게 되는 나름의 선순환 모드에 들어서 있는 듯
지난 몇년을 보면서 갖는 개인적인 느낌은 뭐 그리 대단해서가 아니라
대세이다 보니 점점더 대세가 되는 승자독식 상황이 연출된 것 같다는.
(물론, Pandas, Numpy 훌륭하고 설명이나 예제나 상황이 참 좋은 것이 사실이지만.
그리고 일등공신은 단연 판다스 팬더스 Pandas)
여하간, 프로그래머도 분석가도 머신러닝 엔지니어도 파이썬으로 모이다 보니 공통어 처럼 된 듯한.
프로그램을 잘 못하는 사람도 분석을 잘 못하는 사람도 머신러닝과 AI를 잘 모르는 사람도
파이썬을 써야만 다른 사람들과 소통이 될 것 같다는 막연한 느낌적인 느낌으로 모이다 보니
점점 더 공통이 된 것 아닐까하는 혼자 추측
파이썬 데이터 분석에 대한 관심이 2020년 이후 급격한 상승 패턴을 유지 중 (2022년 5월)
그래서 파이썬으로 데이터 분석하기 위해 어떤 것을 하는데?
생각보다는 실무적인 데이터 분석에서는 지극히 단순한 것이 파이썬으로 일상적으로 하는 일들.
하나의 간단한 예를 하나 든다면,
# 값별 인원수와 구성비를 dataframe 형태로 출력하는 사용자 정의 함수
# 건수 집계와 구성비 계산 작업의 반복적 과정을 한번에 처리해
# 편의성을 높이기 위한 방법
def cntnpcnt(x):
# x is supposed to be a pandas series
dfx = pd.DataFrame(x)
# 한 줄은 한 건의 빈도
dfx['recCnt'] = 1
dfx = dfx.groupby(dfx.columns[0]).count().reset_index()
# 빈도로부터 구성비 계산. 100 곱해서 백분율 단위로
dfx['pcntrecCnt'] = dfx.recCnt/dfx.recCnt.sum() *100
return(dfx)
# 대분류별 소분류의 판매건수를 사용자정의함수로 집계한 결과를
# 데이터프레임으로 저장한 후 시각화
# 집계결과를 테이블로 저장 (미리정의한 사용자정의함수 활용)
dfprdCatFreq = cntnpcnt(sales.lcat + '_' + sales.scat).sort_values('recCnt', ascending=False)
# 저장한 결과 테이블을 시각화
plt.bar(dfprdCatFreq[0], dfprdCatFreq.pcntrecCnt,
color = 'dodgerblue')
plt.xticks(rotation=45, ha='right')
plt.xlabel('대분류-소분류')
plt.ylabel('판매건수 구성비 %')
plt.show()
파이썬의 사용자정의 함수를 사용한 데이터 집계와 시각화의 효율적 처리 예
지극히 별 것 아닌 일이지만,
그 안에 데이터의 가공과 시각화 까지 연결되는 하나의 데이터 분석 프로세스가 한 덩어리로 담겨있기에
이를 재사용가능한 사용자정의함수 user defined function으로 만들어 두면
(객체지향적 사고에서는 encapsulation 이라고도 하지만)
분석하는데 필요한 시간과 노력은 대폭 절감 가능.
시각화 뿐 아니라 그 다음 스텝의 머신러닝 등 다양한 작업까지 전체를 유기적으로 수행하는 것이
가능하다는 것.
(물론 파이썬이 아니라고 이런 정도의 기능이 없는 것은 아님에도)
프로그래밍 자체도 머신러닝 덕에 인기몰이중이지만 파이썬 데이터 분석은 최대 수혜주
특히 최근의 폭발적인 관심 증가에 압도적으로 크게 기여한 것은 머신러닝과 인공지능 AI에 대한
맹목적인 관심 집중인지도
기본 프로그래밍 언어에 더해서 여러 선택지를 다양하게 제공하는 라이브러리들이
계속 등장하고 있기에 가속적 승자독식 구도로 가고 있는 듯
지극히 개인적인 시각에서는
툴이 좋아 봐야, 그래봐야 ....
이런 식으로(그림에서 처럼), 업무도 툴도 잘 모르는 사람이 보기에는 무언가 많은 의미를 담은듯한 챠트를 만들기 위해
개선되고 효율적이된 프로그래밍 언어를 십분 사용해서
전혀 말도 안되는 스토리를 지어내는데
(파이썬 역시) 엄청나게 많이 활용되고 있다는 .... 안타까움도 있는 것은 사실.
툴의 개선 발전 보다는 분석적 사고가 데이터 분석에서는 월등히 중요하다는 것.
(여기서의 분석적 사고 analytical way of thinking 의미는
어떤 데이터를 사용해서 무엇을 분석할 것인가,
그래서 나든 남이든 내놓은 분석결과가 적절한가, 적절하게 해석, 설명 되었는가,
그런 결과를 신뢰하기로 결정했다면 그래서 대상 업무에서는 무엇을 해야하는가
등에 대해 답을 찾아내는 또는 찾아내려고 하는 사고방식)
Disclaimer:
본 글의 작성자는 파이썬 재단 혹은 기타 어떤 파이썬 언어나 라이브러리 관련 조직으로 부터도
홍보를 전제로 댓가를 제공 받은 사실이 없음