Streamlit을 사용한 데이터 분석: 누구나 쉽게 시작할 수 있는 방법 - 지식유니버스

2024년 10월 17일 목요일

Streamlit을 사용한 데이터 분석: 누구나 쉽게 시작할 수 있는 방법

안녕하세요, 여러분! 오늘은 Streamlit이라는 놀라운 도구를 소개해 드리려고 해요. 데이터 분석에 관심은 있지만, 웹 애플리케이션이나 시각화 도구를 어떻게 사용해야 할지 고민이신 분들에게 이 포스트가 큰 도움이 될 거예요. Streamlit은 Python을 사용해서 웹 애플리케이션을 손쉽게 만들 수 있는 라이브러리인데, 특히 데이터 분석에 유용한 기능들이 많답니다.


그럼, 본격적으로 Streamlit이 무엇인지, 어떻게 활용할 수 있는지 알아볼까요?


1. Streamlit이란 무엇인가요?

Streamlit은 Python으로 작성한 코드를 사용해 데이터 분석 결과를 웹 애플리케이션 형태로 쉽게 시각화할 수 있도록 도와주는 툴이에요. 일반적인 웹 개발에서는 HTML, CSS, JavaScript 같은 복잡한 기술들이 필요하지만, Streamlit을 사용하면 이 모든 것을 건너뛰고 오로지 Python만으로도 멋진 웹 애플리케이션을 만들 수 있답니다.

데이터 과학자, 엔지니어, 개발자들이 데이터를 분석할 때 흔히 사용하는 PandasPlotly 같은 툴과 아주 잘 연동되기 때문에 데이터를 시각화하거나 분석 결과를 다른 사람들과 쉽게 공유할 수 있어요.

왜 Streamlit이 특별할까요?

  • 쉬운 사용법: Python만 알고 있으면 웹 애플리케이션을 만들 수 있어요.
  • 빠른 개발: 몇 줄의 코드만으로도 바로 결과물을 확인할 수 있어요.
  • 강력한 시각화 도구: 다양한 그래프와 테이블을 웹 페이지에 쉽게 그릴 수 있어요.

2. Streamlit을 사용해 데이터 분석하기

이제 Streamlit으로 데이터를 어떻게 시각화할 수 있는지 살펴볼 차례입니다. 데이터 시각화는 데이터를 한눈에 파악할 수 있게 도와주는 중요한 도구예요. 데이터를 그냥 숫자로만 나열하는 것보다 그래프로 시각화하면, 어떤 경향이나 패턴을 훨씬 쉽게 이해할 수 있답니다.

Streamlit에서 제공하는 ElementsWidgets를 사용하면 복잡한 데이터를 보기 쉽게 정리할 수 있어요. 그럼 몇 가지 예시를 통해 살펴보겠습니다.

1) Data Elements: 데이터를 테이블로 시각화하기

데이터 분석에서 가장 기본이 되는 것은 데이터를 표 형태로 정리하는 일이에요. Streamlit은 Pandas DataFrame을 손쉽게 웹 페이지에 출력할 수 있어요. 예를 들어, 아래 코드처럼 Pandas를 이용한 데이터를 st.dataframe을 통해 웹 페이지에 출력할 수 있습니다.

python

import streamlit as st import pandas as pd # 데이터 준비 data = {'이름': ['홍길동', '김영희', '이철수'], '나이': [28, 22, 35], '직업': ['개발자', '디자이너', '마케터']} df = pd.DataFrame(data) # 데이터 출력 st.dataframe(df)

이 코드를 실행하면 데이터프레임이 웹 페이지에 표로 표시되며, 사용자가 표 내 데이터를 스크롤하거나 정렬할 수 있어요.

Tip: 데이터를 동적으로 수정하고 싶을 땐 st.data_editor를 사용해 보세요. 사용자가 표를 수정할 수 있도록 만들어줍니다!


2) Chart Elements: 그래프로 데이터를 시각화하기

이제 데이터를 그래프로 시각화해 봅시다. Streamlit은 다양한 형태의 차트를 제공하는데, 그 중에서 가장 많이 사용하는 선 그래프, 막대 그래프, 영역 그래프를 한번 다뤄볼게요.

선 그래프 (Line Chart)

선 그래프는 시간이 흐르면서 데이터가 어떻게 변하는지 보여주는 데 가장 적합해요. 아래 코드로 간단한 선 그래프를 만들어 볼 수 있어요.

python

import streamlit as st import numpy as np import pandas as pd # 데이터 생성 data = pd.DataFrame({ '시간': [1, 2, 3, 4, 5], '값': [100, 120, 130, 115, 140] }) # 선 그래프 출력 st.line_chart(data)

막대 그래프 (Bar Chart)

막대 그래프는 여러 카테고리 간의 데이터를 비교할 때 유용합니다. 예를 들어, 아래 코드로 간단한 막대 그래프를 만들어 볼 수 있어요.

python

import streamlit as st import pandas as pd # 데이터 생성 data = pd.DataFrame({ '이름': ['홍길동', '김영희', '이철수'], '점수': [90, 85, 75] }) # 막대 그래프 출력 st.bar_chart(data)

이렇게 Streamlit을 사용하면 복잡한 코드 없이도 손쉽게 데이터를 시각화할 수 있어요. 그리고 이 모든 것이 Python만으로 가능하답니다!


3. 지도 시각화: Folium과 Streamlit의 만남

데이터 분석에서 지리 정보를 다룰 때가 있죠? 예를 들어, 특정 위치에 대한 데이터를 보여주고 싶을 때 지도를 사용하는 게 유용해요. Streamlit은 Python의 지도 라이브러리인 Folium과 연동되어, 아주 쉽게 지도 기반의 시각화를 할 수 있어요.

아래 코드를 사용해 간단한 지도를 출력해 볼 수 있습니다.

python

import streamlit as st import folium from streamlit_folium import folium_static # 지도 객체 생성 m = folium.Map(location=[37.5665, 126.9780], zoom_start=12) # 지도 출력 folium_static(m)

이렇게 생성된 지도는 서울 중심부를 기준으로 표시되며, 사용자가 직접 확대하거나 이동할 수 있어요.


4. 실습: 직접 해보는 데이터 시각화

이제 직접 실습을 통해 여러분의 데이터를 시각화해볼 시간이에요. 만약 여러분이 가진 데이터가 없다면, 인터넷에서 오픈된 데이터를 가져와서 분석해볼 수 있어요. 예를 들어, 서울시의 공공 데이터나 미세먼지 데이터를 활용할 수 있답니다.

실습 1: 데이터프레임으로 데이터 정리하기

  • 목표: 데이터를 Pandas로 정리하고, Streamlit의 st.dataframe으로 출력합니다.
  • 필요한 도구: Python, Pandas, Streamlit

실습 2: 다양한 차트로 시각화하기

  • 목표: 여러분이 정리한 데이터를 Line Chart, Bar Chart 등으로 시각화해보세요.
  • 필요한 도구: Streamlit의 Chart Elements

실습 3: 지도 시각화하기

  • 목표: 지리 데이터를 Folium을 사용해 지도 위에 시각화합니다.
  • 필요한 도구: Streamlit과 Folium

결론

지금까지 Streamlit을 사용해 데이터 분석과 시각화를 어떻게 할 수 있는지 알아봤어요. 생각보다 간단하죠? Streamlit은 데이터 분석가들이 쉽게 웹 애플리케이션을 만들고 데이터를 시각화할 수 있게 도와주는 아주 강력한 도구입니다.

여러분도 이제 직접 Streamlit을 사용해 데이터를 분석하고 시각화해보세요. 데이터를 더 깊이 이해하고, 그 결과를 멋진 웹 애플리케이션으로 공유할 수 있을 거예요!


이런 방식으로 블로그 포스트를 작성하면, 기술적인 배경이 없는 독자도 쉽게 따라할 수 있고, 중요한 개념과 툴을 친근하게 전달할 수 있습니다.

댓글 없음:

댓글 쓰기