- 수업 내용 리마인드 및 아카이빙 목적의 업로드
1. Streamlit이란?
Streamlit은 데이터 분석과 시각화를 위한 파이썬 라이브러리에요. 복잡한 코딩 없이도 직관적으로 데이터를 분석하고, 시각화된 결과물을 웹 애플리케이션 형태로 만들 수 있어요.
- 간편한 사용: 코드가 짧고 이해하기 쉬워서, 프로그래밍 경험이 많지 않아도 쉽게 사용할 수 있어요.
- 다양한 데이터 소스 지원: CSV, JSON, SQL 등 여러 가지 데이터 형식을 쉽게 다룰 수 있어요.
- 실시간 데이터 처리: 실시간으로 데이터를 분석하고, 그 결과를 바로바로 볼 수 있어요.
- 쉽게 웹 애플리케이션으로 공유: 분석한 데이터를 간편하게 웹 애플리케이션으로 만들어 공유할 수 있어요.
2. Streamlit의 강점
Streamlit은 빠르게 프로토타입을 만들고 테스트할 수 있는 도구로, 간단한 코드만으로도 다양한 기능을 구현할 수 있어요. 이 과정에서 직관적인 인터페이스와 시각화 도구를 활용해 데이터를 효과적으로 분석할 수 있죠.
- 빠른 개발: 간단한 코드로 데이터 분석 애플리케이션을 빠르게 만들 수 있어서, 아이디어를 바로바로 실현할 수 있어요.
- 상호작용 기능: 사용자가 직접 데이터를 조작하고 결과를 확인할 수 있는 인터랙티브한 애플리케이션을 만들 수 있어요. 슬라이더, 버튼, 텍스트 입력 등 다양한 위젯을 통해 데이터를 동적으로 분석할 수 있어요.
- 강력한 시각화 도구: Pandas, Matplotlib, Altair 같은 파이썬 라이브러리와 잘 어울려서, 복잡한 데이터도 쉽게 시각화할 수 있어요.
- 쉬운 공유와 협업: 만든 애플리케이션을 웹에 쉽게 배포할 수 있어, 팀원이나 클라이언트와 협업하기도 편리해요.
3. Streamlit 설치와 기본 사용법
Streamlit을 설치하고 애플리케이션을 만들어보는 과정도 아주 간단해요.
1) Streamlit 설치
pip install streamlit
이 명령어로 Streamlit을 설치하세요. Python 3.6 이상이 필요해요.
2) Streamlit 애플리케이션 만들기
import streamlit as st
# 앱 제목 설정
st.title("첫 번째 Streamlit 앱")
# 텍스트 출력
st.write("안녕하세요! Streamlit입니다.")
# 이미지 출력
st.image("image.jpg", width=200)
위 코드에서 st.title은 페이지 제목을 설정하고, st.write는 텍스트를 출력하며, st.image는 이미지를 출력하는 기능이에요.
3) Streamlit 애플리케이션 실행
streamlit run hello_streamlit.py
이 명령어로 애플리케이션을 실행하면, 웹 브라우저에서 결과를 확인할 수 있어요.
4. 데이터 표시와 시각화
Streamlit은 데이터를 다양한 방식으로 표시하고, 시각화할 수 있는 기능을 제공해요. 데이터를 표 형태로 출력하거나, 차트와 그래프를 만들어 시각적으로 표현할 수 있어요.
- 데이터프레임 표시: Pandas 데이터프레임을 테이블 형식으로 간편하게 출력할 수 있어요.
import pandas as pd
import streamlit as st
# 데이터프레임 생성
data = {'이름': ['Alice', 'Bob', 'Charlie'], '나이': [25, 30, 35]}
df = pd.DataFrame(data)
# 데이터프레임 출력
st.dataframe(df)
- 기본 차트 시각화: Streamlit을 이용해 막대 그래프나 선 그래프 같은 기본 차트를 손쉽게 만들 수 있어요.
# 막대 그래프 생성
st.bar_chart(df['나이'])
# 선 그래프 생성
st.line_chart(df['나이'])
- 고급 시각화: Matplotlib 같은 라이브러리를 활용해서 좀 더 복잡한 시각화도 가능해요.
import matplotlib.pyplot as plt
# 간단한 Matplotlib 그래프
plt.figure(figsize=(10, 4))
plt.bar(df['이름'], df['나이'])
st.pyplot(plt)
5. 사용자 입력과 데이터 조작
Streamlit은 다양한 사용자 입력 위젯을 제공해서, 사용자가 직접 데이터를 입력하고 조작할 수 있어요. 이를 통해 동적이고 반응형인 애플리케이션을 만들 수 있죠.
- 사용자 입력
age = st.slider("나이 선택:", 18, 65)
st.write("선택된 나이:", age)
- 데이터 필터링: 사용자가 선택한 값에 따라 데이터를 필터링하고, 그 결과를 시각화할 수 있어요.
import pandas as pd
# 데이터프레임 필터링
filtered_df = df[df['나이'] > age]
st.dataframe(filtered_df)
6. Streamlit 앱 배포와 협업
Streamlit으로 만든 애플리케이션은 웹 기반으로 쉽게 배포할 수 있어요. GitHub와 연동하거나, Streamlit의 클라우드 서비스를 이용해 애플리케이션을 공유하고 협업할 수 있습니다.
1) GitHub를 통한 배포:
- 먼저 GitHub에 저장소를 생성하고, 애플리케이션 코드를 업로드합니다.
- requirements.txt 파일을 만들어 필요한 패키지를 정리해요.
2) Streamlit 배포:
- Streamlit Cloud에 접속해 GitHub 저장소를 선택하여 애플리케이션을 배포할 수 있어요.
- 배포된 애플리케이션은 URL을 통해 쉽게 공유할 수 있고, 팀원이나 클라이언트와 실시간으로 협업할 수 있습니다.
'+ 개발' 카테고리의 다른 글
텍스트 마이닝 : 개념부터 활용까지 (9) | 2024.09.04 |
---|---|
자연어 처리(NLP) 기초 (2) | 2024.09.03 |
논문 리뷰(#텍스트 마이닝 #뉴스 분석 #금융 시장 변동성)_Gen.AI (6) | 2024.09.01 |
뉴스 크롤링(#네이버 뉴스)_코드 설명 (0) | 2024.08.31 |
논문 리뷰(#텍스트 마이닝 #금통위 의사록 분석)_Gen.AI (3) | 2024.08.30 |