Spaces:
Running
Running
Commit ·
07ff35b
1
Parent(s): d050a15
Update README and code to reflect unique student metrics in UCI dataset
Browse files- Enhanced `README_PICKLES.md` to clarify the unique student count and processing details for the UCI DataFrame.
- Modified `1_uci.py` to display the number of unique students alongside total records.
- Updated utility functions in `utilidades.py` to calculate unique student counts based on demographic characteristics, improving accuracy in metrics calculations.
- README_PICKLES.md +5 -2
- webapp/pages/1_uci.py +6 -1
- webapp/src/utilidades.py +9 -3
README_PICKLES.md
CHANGED
|
@@ -8,10 +8,13 @@ Os arquivos pickle contêm DataFrames pandas processados para eliminar a necessi
|
|
| 8 |
### `uci_dataframe.pkl`
|
| 9 |
- **Conteúdo**: DataFrame UCI processado e concatenado
|
| 10 |
- **Tamanho**: ~0.12 MB
|
| 11 |
-
- **Registros**: 1,044 estudantes
|
| 12 |
- **Colunas**: 34 (incluindo transformações aplicadas)
|
| 13 |
- **Processamento**:
|
| 14 |
-
- Concatenação de student-mat.csv + student-por.csv
|
|
|
|
|
|
|
|
|
|
| 15 |
- Transformação de valores categóricos
|
| 16 |
- Mapeamento de códigos para labels legíveis
|
| 17 |
|
|
|
|
| 8 |
### `uci_dataframe.pkl`
|
| 9 |
- **Conteúdo**: DataFrame UCI processado e concatenado
|
| 10 |
- **Tamanho**: ~0.12 MB
|
| 11 |
+
- **Registros**: 1,044 registros (661 estudantes únicos)
|
| 12 |
- **Colunas**: 34 (incluindo transformações aplicadas)
|
| 13 |
- **Processamento**:
|
| 14 |
+
- Concatenação de student-mat.csv (395 registros) + student-por.csv (649 registros)
|
| 15 |
+
- 366 estudantes aparecem em ambas as matérias (matemática e português)
|
| 16 |
+
- 25 estudantes apenas em matemática, 270 apenas em português
|
| 17 |
+
- Total: 661 estudantes únicos
|
| 18 |
- Transformação de valores categóricos
|
| 19 |
- Mapeamento de códigos para labels legíveis
|
| 20 |
|
webapp/pages/1_uci.py
CHANGED
|
@@ -70,7 +70,12 @@ with st.sidebar:
|
|
| 70 |
)
|
| 71 |
st.markdown("---")
|
| 72 |
st.markdown("## Informações")
|
| 73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
st.write(f"**Número de Atributos:** {df.shape[1]}")
|
| 75 |
st.write(f"**Número de Atributos Numéricos:** {numeric_df.shape[1]}")
|
| 76 |
st.write(f"**Número de Atributos Categóricos:** {df.select_dtypes('object').shape[1]}")
|
|
|
|
| 70 |
)
|
| 71 |
st.markdown("---")
|
| 72 |
st.markdown("## Informações")
|
| 73 |
+
# Calcular estudantes únicos baseado em características demográficas
|
| 74 |
+
colunas_id = ['school', 'sex', 'age', 'address', 'famsize', 'Pstatus', 'Medu', 'Fedu', 'Mjob', 'Fjob', 'reason', 'guardian']
|
| 75 |
+
estudantes_unicos = df[colunas_id].drop_duplicates().shape[0]
|
| 76 |
+
|
| 77 |
+
st.write(f"**Número de Registros:** {df.shape[0]} (inclui estudantes em múltiplas matérias)")
|
| 78 |
+
st.write(f"**Número de Estudantes Únicos:** {estudantes_unicos}")
|
| 79 |
st.write(f"**Número de Atributos:** {df.shape[1]}")
|
| 80 |
st.write(f"**Número de Atributos Numéricos:** {numeric_df.shape[1]}")
|
| 81 |
st.write(f"**Número de Atributos Categóricos:** {df.select_dtypes('object').shape[1]}")
|
webapp/src/utilidades.py
CHANGED
|
@@ -67,8 +67,10 @@ def obter_metricas_principais_uci():
|
|
| 67 |
'estudantes_alcool_alto': 0
|
| 68 |
}
|
| 69 |
|
| 70 |
-
# Calcular métricas reais
|
| 71 |
-
|
|
|
|
|
|
|
| 72 |
media_nota_final = df_uci['G3'].mean() if 'G3' in df_uci.columns else 0
|
| 73 |
taxa_aprovacao = (df_uci['G3'] >= 10).mean() * 100 if 'G3' in df_uci.columns else 0
|
| 74 |
media_faltas = df_uci['absences'].mean() if 'absences' in df_uci.columns else 0
|
|
@@ -230,8 +232,12 @@ def calcular_metricas_uci(df_uci):
|
|
| 230 |
if df_uci.empty:
|
| 231 |
return {}
|
| 232 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 233 |
metricas = {
|
| 234 |
-
'total_alunos':
|
| 235 |
'media_nota_final': df_uci['G3'].mean() if 'G3' in df_uci.columns else 0,
|
| 236 |
'taxa_aprovacao': (df_uci['G3'] >= 10).mean() * 100 if 'G3' in df_uci.columns else 0,
|
| 237 |
'media_faltas': df_uci['absences'].mean() if 'absences' in df_uci.columns else 0,
|
|
|
|
| 67 |
'estudantes_alcool_alto': 0
|
| 68 |
}
|
| 69 |
|
| 70 |
+
# Calcular métricas reais - contar estudantes únicos baseado em características demográficas
|
| 71 |
+
# Usar combinação de colunas que identificam unicamente cada estudante
|
| 72 |
+
colunas_id = ['school', 'sex', 'age', 'address', 'famsize', 'Pstatus', 'Medu', 'Fedu', 'Mjob', 'Fjob', 'reason', 'guardian']
|
| 73 |
+
total_estudantes = df_uci[colunas_id].drop_duplicates().shape[0]
|
| 74 |
media_nota_final = df_uci['G3'].mean() if 'G3' in df_uci.columns else 0
|
| 75 |
taxa_aprovacao = (df_uci['G3'] >= 10).mean() * 100 if 'G3' in df_uci.columns else 0
|
| 76 |
media_faltas = df_uci['absences'].mean() if 'absences' in df_uci.columns else 0
|
|
|
|
| 232 |
if df_uci.empty:
|
| 233 |
return {}
|
| 234 |
|
| 235 |
+
# Contar estudantes únicos baseado em características demográficas
|
| 236 |
+
colunas_id = ['school', 'sex', 'age', 'address', 'famsize', 'Pstatus', 'Medu', 'Fedu', 'Mjob', 'Fjob', 'reason', 'guardian']
|
| 237 |
+
total_estudantes_unicos = df_uci[colunas_id].drop_duplicates().shape[0]
|
| 238 |
+
|
| 239 |
metricas = {
|
| 240 |
+
'total_alunos': total_estudantes_unicos,
|
| 241 |
'media_nota_final': df_uci['G3'].mean() if 'G3' in df_uci.columns else 0,
|
| 242 |
'taxa_aprovacao': (df_uci['G3'] >= 10).mean() * 100 if 'G3' in df_uci.columns else 0,
|
| 243 |
'media_faltas': df_uci['absences'].mean() if 'absences' in df_uci.columns else 0,
|