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 pandas lectura de csv problema de análisis

Se puede descargar el conjunto de datos aquí. Todo está bien si abro el archivo con Excel o R, pero cuando lo cargo usando pd.read_csv, todo se ve muy extraño. La columna Month se fusiona con la columna Year. ¿Alguien sabe qué causa el problema?

El conjunto de datos se ve así:

Year, Month, Monthly_MSL, Linear_Trend, High_Conf., Low_Conf.
1944,1,6.985,6.968,6.982,6.954,
1944,2,7.025,6.968,6.982,6.954,
1944,3,7.054,6.968,6.982,6.954,
1944,4,6.980,6.968,6.982,6.955,
1944,5,6.967,6.968,6.982,6.955,
import pandas as pd
pd.read_csv("330-071_meantrend.csv")

También intenté:

pd.read_csv("330-071_meantrend.csv", sep="\s,\s")

Resultados:

Year    Month   Monthly_MSL Linear_Trend    High_Conf.  Low_Conf.

1944 1 6.985 6.968 6.982 6.954 NaN
1944 2 7.025 6.968 6.982 6.954 NaN
1944 3 7.054 6.968 6.982 6.954 NaN
1944 4 6.980 6.968 6.982 6.955 NaN
1944 5 6.967 6.968 6.982 6.955 NaN
… … … … … … …
2006 7 7.074 7.079 7.092 7.066 NaN
2006 8 7.124 7.079 7.092 7.066 NaN
2006 9 7.110 7.079 7.093 7.066 NaN
2006 10 7.185 7.079 7.093 7.066 NaN
2006 11 7.086 7.080 7.093 7.066 NaN

Ninguna de las opciones anteriores funciona.

R funciona bien.

library(reader)
read_csv("330-071_meantrend.csv")
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con la columna ‘Month’ que se fusiona con la columna ‘Year’ al cargar el conjunto de datos usando pd.read_csv() es causado por un espacio al final del nombre de la columna.

    Para resolver el problema, podemos pasar el parámetro skipinitialspace como True para eliminar cualquier espacio en blanco al principio o al final en los nombres de las columnas. Aquí tienes un ejemplo de código:

    import pandas as pd
    
    df = pd.read_csv("330-071_meantrend.csv", skipinitialspace=True)
    
    print(df.head())
    

    Esto nos debería dar la salida esperada con la columna ‘Month’ como una columna separada:

       Year  Month  Monthly_MSL  Linear_Trend  High_Conf.  Low_Conf.
    0  1944      1        6.985         6.968       6.982      6.954
    1  1944      2        7.025         6.968       6.982      6.954
    2  1944      3        7.054         6.968       6.982      6.954
    3  1944      4        6.980         6.968       6.982      6.955
    4  1944      5        6.967         6.968       6.982      6.955
    

    Ten en cuenta que no necesitamos especificar el separador utilizando el parámetro ‘sep’, ya que el separador predeterminado para pd.read_csv() es la coma.

Comments are closed.