Generar un data frame de información anual para 10 años que tenga nombre de frutas , ingresos y fecha. Se requiere que en dash con un dropdown que seleccione un año, se extraiga la sumatoria de las frutas manzana y plátano, de los últimos tres años
Aquí te muestro un ejemplo de cómo podrías crear un DataFrame con la información que necesitas y luego utilizar Dash para crear una interfaz de usuario con un dropdown para seleccionar el año y mostrar la suma de las frutas manzana y plátano de los últimos tres años. Primero, instalamos las bibliotecas necesarias: ```bash pip install pandas dash dash-core-components dash-html-components dash-tables plotly ``` Luego, creamos el DataFrame con la información: ```python import pandas as pd import numpy as np import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output import plotly.express as px # Creamos un DataFrame con la información np.random.seed(0) data = { 'Nombre de fruta': np.repeat(['Manzana', 'Plátano', 'Fresa', 'Naranja', 'Mango'], 10), 'Ingresos': np.random.randint(100, 1000, 50), 'Fecha': pd.date_range('2020-01-01', periods=50, freq='M') } df = pd.DataFrame(data) # Convertimos la fecha a formato anual df['Fecha'] = df['Fecha'].dt.to_period('Y') ``` Ahora creamos la aplicación de Dash: ```python # Creamos la aplicación de Dash app = dash.Dash(__name__) # Creamos la interfaz de usuario app.layout = html.Div([ html.H1('Suma de frutas'), dcc.Dropdown( id='year-dropdown', options=[{'label': str(year), 'value': year} for year in df['Fecha'].unique()], value=df['Fecha'].min() ), html.Div(id='suma-frutas') ]) # Definimos la función para actualizar el contenido de la interfaz de usuario @app.callback( Output('suma-frutas', 'children'), [Input('year-dropdown', 'value')] ) def update_suma_frutas(selected_year): # Filtramos los datos para los últimos tres años last_three_years = df[df['Fecha'] >= selected_year - 3] # Sumamos las frutas manzana y plátano suma_manzana_platano = last_three_years[last_three_years['Nombre de fruta'].isin(['Manzana', 'Plátano'])]['Ingresos'].sum() # Creamos un gráfico con la información fig = px.bar(x=['Manzana', 'Plátano'], y=[suma_manzana_platano]) # Devolvemos el gráfico como una imagen return dcc.Graph(figure=fig) # Iniciamos la aplicación if __name__ == '__main__': app.run_server(debug=True) ``` Finalmente, ejecutamos la aplicación con `python app.py` y accedemos a ella en nuestro navegador en `http://localhost:8050`. En el dropdown podemos seleccionar un año y ver la suma de las frutas manzana y plátano de los últimos tres años.