File size: 2,616 Bytes
fd03181
b906a5a
fd03181
803b4f5
 
 
25d6c71
803b4f5
 
 
 
 
590da27
f2a4ed0
f0acbd7
b906a5a
608cb34
e48b6c8
803b4f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import streamlit as st
import pandas as pd

c1, c2, = st.columns([7,7])
with c2:
    st.image('figures/gdmk_logo.png', width=100, caption='2023') 
with c1:
    st.image('figures/giz_logo.png', width=200, caption='Peru')

st.title('Estudio de Encuesta Integridad')
option0 = st.selectbox('Formato de Analisis: ', ('Textos', 'Gráficos'))
option3 = st.selectbox('Documento: ', ('Todos', 'Encuesta', 'Indicadores'))

# Load dataframe
file = st.file_uploader('Seleccione un archivo Excel: ')

if file is not None:
    
    if option0 == 'Textos':
        # Load the Excel file into a Pandas dataframe
        df00 = pd.read_excel(file, engine='openpyxl')
        # Show the dataframe in Streamlit

        # Sidebar option
        
        maprange = {'0 a 10%': 10, '10 a 20%': 20, '20 a 30%': 30, '30 a 40%': 40, '40 a 50%': 50}
        option2 = st.selectbox('Franja de Discrepancia [0, 50]', ('0 a 10%', '10 a 20%', '20 a 30%', '30 a 40%', '40 a 50%'))
        mapn = maprange[option2]
        st.write('La franja de discrepancia mostrada es entre ', mapn-10, ' y ', mapn, '%')
        option1 = st.selectbox('Clasificar resultados por:', ('Pregunta', 'Categoria'))
        df = df00[(df00['diff'] > mapn-10) & (df00['diff'] < mapn)]
        df = df[df['documento']==option3]
        #st.write(df)

        # Group dataframe by chosen option
        if option1 == 'Pregunta':
            grouped_df = df.groupby('pregunta')
        elif option1 == 'Categoria':
            grouped_df = df.groupby('cat_sup')

        # Generate text with bullets
        text = ''

        for name, group in grouped_df:

            cad01 = '\n\n > **'+ option1+ ': '+ name + '**'
            st.write(cad01)
            st.write('Cantidad de afirmaciones: ', len(group))
            texto_tot = ''
            for index, row in group.iterrows():
                val0 = str(row['diff'])
                text = '* En el rubro sobre ' + row.pregunta + ' la categoría ' + row.cat_sup + ' responde ' + \
                row.respuesta + ' un **' + val0 + '%** más que la categoría ' + row.cat_inf + '\n'
                texto_tot = texto_tot + '\n' + text
            st.write(texto_tot)

        # Download link for text file
        st.download_button(label='Descargar Reporte', data=texto_tot, file_name='reporte.txt', mime='text/plain')
        
    else:
        option21 = st.selectbox('Tipo de Consulta: ', ('Categoría', 'Pregunta', 'Total')) 
        
        if option21 == 'Total':
            st.image('figures/discrepancias_heatmap.png', width=1200)
        else:
            st.write('En construcción...')