es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python Groupby y trazado de datos

Hola, tengo este dataframe como se muestra:

enter image description here

¿Hay alguna forma de graficar esto? Por ejemplo, para el 1-5-2021, ¿se puede sumar 10+7=17 para obtener el total? El gráfico debe mostrar las estadísticas diarias, es decir, el 1-5-2021, el total es 17 y la temperatura es 36°C.

Perdón, olvidé agregarlo… quiero mostrar si hay alguna correlación entre la temperatura y el total. ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible trazar este dataframe utilizando python y pandas. Un enfoque posible es utilizar la función groupby() de pandas para agrupar los datos por la columna de fecha, y luego utilizar la función sum() para calcular el total para cada día.

    Aquí tienes un ejemplo de código para lograr esto:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # leer el dataframe desde el enlace de imagen
    df = pd.read_csv("https://i.stack.imgur.com/sKrjC.png")
    
    # convertir la columna de fecha al formato datetime
    df['date'] = pd.to_datetime(df['date'])
    
    # agrupar los datos por fecha y calcular el total y la temperatura promedio para cada día
    daily_stats = df.groupby('date').agg({'total': 'sum', 'temperature': 'mean'})
    
    # trazar las estadísticas diarias
    plt.plot(daily_stats.index, daily_stats['total'])
    plt.xlabel('Fecha')
    plt.ylabel('Total')
    plt.title('Estadísticas diarias totales')
    
    # agregar la temperatura al gráfico como un segundo eje y
    ax2 = plt.twinx()
    ax2.plot(daily_stats.index, daily_stats['temperature'], color='r')
    ax2.set_ylabel('Temperatura')
    ax2.tick_params(axis='y', labelcolor='r')
    
    # mostrar el gráfico
    plt.show()
    

    Este código primero lee el dataframe desde el enlace de la imagen y convierte la columna de fecha al formato datetime. Luego, agrupa los datos por fecha utilizando la función groupby() y calcula el total y la temperatura promedio para cada día utilizando la función agg(). Finalmente, traza las estadísticas diarias totales y agrega la temperatura como un segundo eje y utilizando la función twinx().

    Para mostrar la correlación entre la temperatura y el total, puedes calcular el coeficiente de correlación entre las dos columnas utilizando la función corr():

    correlacion = df['temperature'].corr(df['total'])
    print('Correlación entre temperatura y total:', correlacion)
    

    Esto imprimirá el coeficiente de correlación entre la temperatura y el total. Si el valor está cerca de 1 o -1, indica una correlación positiva o negativa fuerte, respectivamente. Un valor cercano a 0 indica poca o ninguna correlación.

Comments are closed.