punto_organico / ventas_anuales_clientes.py
perezcatriel's picture
primer commit
cfc6bc9
raw
history blame
1.1 kB
import pandas as pd
import plotly.express as px
import streamlit as st
from datetime import date
def ventas_anuales():
# Carga del archivo CSV
df = pd.read_csv('data/po_excel_original.csv')
# Transforma las columnas de meses en filas
df = df.melt(id_vars='Año', var_name='Mes', value_name='Ventas')
# Reordena los meses en orden cronológico
meses_ordenados = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
'Sep', 'Oct', 'Nov', 'Dic']
df['Mes'] = pd.Categorical(df['Mes'], categories=meses_ordenados, ordered=True)
# Ordena el DataFrame por año y mes
df = df.sort_values(['Año', 'Mes'])
# Filtra los datos hasta el último mes mostrado
ultimo_mes_mostrado = meses_ordenados[date.today().month-1]
df = df[df['Mes'] <= ultimo_mes_mostrado]
# Crea el gráfico de barras
fig = px.bar(df, x='Mes', y='Ventas', color='Año', title='Ventas Anuales', labels={'Ventas': 'Ventas ($)', 'Mes': 'Mes', 'Año': 'Año'})
# Muestra el gráfico en Streamlit
st.plotly_chart(fig, use_container_width=True)