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.

Cómo ordenar y crear puntos de datos sumados del mismo año desde un gráfico utilizando pandas? Los formatos de año son, por ejemplo, 2018, 2019.

Estoy tratando de ordenar un gráfico con información sobre accidentes de vuelo. Por lo tanto, en el archivo CSV hay diferentes aerolíneas, el año del accidente y muchas otras cosas. Quiero acumular todos los incidentes por año y otro gráfico que sume por cada año y cada aerolínea:

Desirable outcome del primer gráfico:

año incidentes
2012 11
2013 12

Desirable outcome del segundo gráfico:

año incidentes Aerolínea
2011 23 United
2011 20 Hawaii
2011 30 United

Intenté usar dt.year pero no funciona. Debido a que el año en el archivo CSV está en formato 2018,2019, no en el formato 2018-10-12. No puedo usarlo como información de fecha.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el primer gráfico, puedes usar pandas para leer el archivo csv y agrupar los datos por año utilizando la función groupby(), luego aplicar la función count() para contar el número de incidentes en cada año. El código se vería algo así:

    import pandas as pd
    
    # leer el archivo csv
    df = pd.read_csv('flight_accidents.csv')
    
    # extraer el año de la columna 'Date'
    df['year'] = pd.DatetimeIndex(df['Date']).year
    
    # agrupar los datos por año y contar el número de incidentes
    incident_count = df.groupby('year')['Incidents'].count()
    
    # imprimir el resultado
    print(incident_count)
    

    Para lograr el segundo gráfico, puedes usar pandas nuevamente para agrupar los datos por año y aerolínea, y sumar el número de incidentes utilizando la función sum(). El código se vería así:

    import pandas as pd
    
    # leer el archivo csv
    df = pd.read_csv('flight_accidents.csv')
    
    # extraer el año de la columna 'Date'
    df['year'] = pd.DatetimeIndex(df['Date']).year
    
    # agrupar los datos por año y aerolínea y sumar el número de incidentes
    incident_count = df.groupby(['year', 'Airline'])['Incidents'].sum()
    
    # imprimir el resultado
    print(incident_count)
    

    Ten en cuenta que los nombres de las columnas utilizados en el código (Date, Incidents, Airline) pueden diferir de los nombres reales de las columnas en tu archivo csv, por lo que tendrías que ajustarlos en consecuencia.

Comments are closed.