Streamlit 처음부터: CSV에서 데이터를 탐색하고 시각화하는 앱 만들기

발행: (2026년 1월 3일 오후 05:48 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

(번역하려는 본문을 제공해 주시면, 요청하신 대로 한국어로 번역해 드리겠습니다.)

소개

이 기사에서는 Streamlit을 처음부터 사용하여 로컬 CSV 파일에서 데이터를 로드, 탐색 및 시각화할 수 있는 인터랙티브 애플리케이션을 구축합니다. 목표는 Python 및 관련 라이브러리를 활용하여 탐색적 데이터 분석(EDA)용 앱을 빠르게 만드는 것입니다.

프로젝트 저장소:

제안된 아키텍처

  • Python: 고수준이며 다재다능한 언어.
  • Pandas: DataFrames와 같은 구조를 사용한 데이터 조작 및 분석.
  • Streamlit: 몇 줄의 코드만으로 인터랙티브 애플리케이션을 만들 수 있는 오픈소스 프레임워크.
  • GitHub: 소스 코드 호스팅 및 협업.

사용된 기술

  • streamlit
  • pandas
  • numpy
  • matplotlib
  • seaborn
  • plotly
  • scikit-learn

단계별 구현

1. 가상 환경 만들기 및 활성화

# Crear ambiente
python -m venv env-local-streamlit

# Activar ambiente (Linux/macOS)
source env-local-streamlit/bin/activate

# Activar ambiente (Windows)
.\env-local-streamlit\Scripts\activate

2. 의존성 설치

# Listar paquetes antes de instalar (opcional)
pip list

# Instalar desde requirements.txt
pip install -r requirements.txt

# Verificar instalación
pip list

3. Streamlit 애플리케이션 기본 구조

# src/main.py
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px

# Configuración de la página
st.set_page_config(page_title="Streamlit local", page_icon="📁", layout="wide")
st.title("💻 Probar Streamlit de manera local")
st.write(
    """
    Esta aplicación demuestra cómo cargar y explorar un conjunto de datos localmente usando Streamlit.
    El conjunto de datos utilizado es un conjunto ficticio sobre diabetes.
    """
)

# Cargar datos
uploaded_file = "data/diabetes_dataset.csv"
df = pd.read_csv(uploaded_file)
st.success("✅ Archivo cargado correctamente.")

# Mostrar información básica
st.subheader("Vista previa del dataset")
st.dataframe(df.head())
st.subheader("Estadísticas descriptivas")
st.dataframe(df.describe())
st.write("Filas y columnas:", df.shape)

# Filtro de filas
n_rows = st.slider("Número de filas a mostrar", 5, 100, 5)
st.dataframe(df.head(n_rows))

# Treemap con Plotly
fig_treemap = px.treemap(
    df,
    path=["diagnosed_diabetes", "smoking_status"],
    title="Treemap jerárquico: Diabetes → Fumador"
)
st.plotly_chart(fig_treemap, use_container_width=True)

# Pie chart con Matplotlib
st.subheader("Distribución de fumadores entre diabéticos")
diab = df[df["diagnosed_diabetes"] == 1]["smoking_status"].value_counts()
fig, ax = plt.subplots(figsize=(5, 5))
ax.pie(diab, labels=diab.index, autopct="%1.1f%%")
ax.set_title("Fumadores (Diabéticos)")
st.pyplot(fig)

4. 사용된 UI 구성 요소

  • st.header, st.subheader, st.title, st.write – 텍스트와 제목 표시.
  • st.dataframe – 인터랙티브 테이블 표시.
  • st.slider – 동적 필터링.
  • st.plotly_chartst.pyplot – 시각화 표시.

애플리케이션 실행

# Desde la raíz del proyecto
streamlit run src/main.py

명령을 실행하기 전에 가상 환경을 활성화하고 프로젝트 폴더 안에 있는지 확인하세요.

결론

Streamlit은 데이터 시각화와 탐색을 간소화하여 클라우드 인프라 없이도 인터랙티브한 애플리케이션을 만들 수 있게 합니다. 가상 환경 설정, 의존성 설치, 파이썬 스크립트 몇 단계만으로 강력한 EDA 도구를 얻을 수 있습니다.

  • Streamlit 공식 문서:
  • GCP (Cloud Run)에서 배포된 고급 예제:

추천 리소스

  • Python:
  • Pandas:
  • Plotly:
  • Matplotlib:
  • Seaborn:
  • Scikit‑learn:
Back to Blog

관련 글

더 보기 »

데이터 사이언스 스킬 향상 38일 차

데이터 시각화 새해 복 많이 받으세요 🥂 데이터 시각화에서 나는 단순히 “차트를 그리는” 것이 아니었습니다. 데이터 가져오기 나는 관계형 데이터베이스에 발을 들였습니다: > Insert relationa...