una tabla con muchos datos que tiene una columna de fecha inicio y una columna de fecha fin con un rango de datos
Drop files here
or click to upload
import streamlit as st
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# Generar datos de ejemplo
np.random.seed(42)
n_rows = 100
# Generar fechas aleatorias en un rango de 2 años
base_date = datetime(2022, 1, 1)
dates_start = [base_date + timedelta(days=np.random.randint(0, 365*2)) for _ in range(n_rows)]
dates_end = [start + timedelta(days=np.random.randint(1, 90)) for start in dates_start]
# Crear datos aleatorios para otras columnas
data = {
'Proyecto': [f'Proyecto {i+1}' for i in range(n_rows)],
'Fecha Inicio': dates_start,
'Fecha Fin': dates_end,
'Presupuesto': np.random.randint(10000, 100000, n_rows),
'Estado': np.random.choice(['En Progreso', 'Completado', 'Retrasado', 'Cancelado'], n_rows),
'Prioridad': np.random.choice(['Alta', 'Media', 'Baja'], n_rows)
}
df = pd.DataFrame(data)
st.title('Tabla de Proyectos con Fechas')
# Agregar filtros de fecha
col1, col2 = st.columns(2)
with col1:
min_date = st.date_input('Fecha Inicio Desde', min(dates_start))
with col2:
max_date = st.date_input('Fecha Fin Hasta', max(dates_end))
# Filtrar el DataFrame
mask = (df['Fecha Inicio'].dt.date >= min_date) & (df['Fecha Fin'].dt.date <= max_date)
filtered_df = df[mask]
# Mostrar la tabla con configuración de columnas
st.dataframe(
filtered_df,
column_config={
'Fecha Inicio': st.column_config.DatetimeColumn(
'Fecha Inicio',
format='DD/MM/YYYY',
width='medium',
),
'Fecha Fin': st.column_config.DatetimeColumn(
'Fecha Fin',
format='DD/MM/YYYY',
width='medium',
),
'Presupuesto': st.column_config.NumberColumn(
'Presupuesto',
format='$%d',
width='medium',
),
},
hide_index=True,
)
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?