Projeto didático de Ciência de Dados com Streamlit usando Pandas para carregar um CSV, aplicar filtros e gerar visualizações nativas do Streamlit. Inclui também exemplos de correlação e K-means para explorar padrões em variáveis numéricas.
Repositório: https://github.com/gmcalixto/intro_cd_streamlit
- Python 3.10+ (recomendado 3.11/3.12)
pip- (Recomendado) ambiente virtual (
venv)
git clone https://github.com/gmcalixto/intro_cd_streamlit.git
cd intro_cd_streamlitWindows (PowerShell):
python -m venv env
.\env\Scripts\Activate.ps1Linux/Mac:
python -m venv env
source env/bin/activateSe existir requirements.txt:
pip install -r requirements.txtSe ainda não existir, um conjunto mínimo para este exemplo é:
pip install streamlit pandas scikit-learn matplotlib
matplotlibé usado apenas na visualização opcional do K-means com centróides viast.pyplot().
O app lê um arquivo CSV (exemplo utilizado nas aulas):
StudentPerformanceFactors.csv
Coloque o arquivo na raiz do projeto (mesma pasta do app.py) ou ajuste o caminho no código:
ARQUIVO = "StudentPerformanceFactors.csv"Na pasta do projeto, execute:
streamlit run app.pyO Streamlit vai exibir no terminal um endereço como:
- Lê o CSV com Pandas (
pd.read_csv) - Exibe amostra (
head) e estatísticas descritivas
- 1 filtro categórico (seleção de coluna e valor)
- 1 filtro numérico (slider de intervalo)
st.bar_chart()- média de métrica numérica por categoria
- ranking de correlações com variável alvo
st.line_chart()- tendência/variação de uma coluna numérica (série ordenada)
st.scatter_chart()- dispersão X × Y
- dispersão X × Y colorida por cluster (K-means)
- Matriz de correlação em tabela (
df.corr()) - Ranking das correlações absolutas com uma variável alvo (bar chart)
- Seleção de duas variáveis numéricas (X e Y)
- Escolha de
k(número de clusters) - Padronização com
StandardScaler(recomendado) - Visualização:
st.scatter_chart(nativo) colorindo por cluster- (Opcional) Matplotlib para destacar centróides
intro_cd_streamlit/
├─ app.py
├─ StudentPerformanceFactors.csv
├─ requirements.txt
└─ README.md