indexing to - ¿Cómo evitar que Python / Pandas creen un índice en un csv guardado?




save data (5)

Estoy intentando guardar un archivo csv en una carpeta después de realizar algunas modificaciones en el archivo.

Cada vez que uso pd.to_csv('C:/Path of file.csv') el archivo csv tiene una columna de índices separada. Quiero evitar imprimir el índice a csv.

Lo intenté:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)

Y para guardar el archivo ...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)

Sin embargo, todavía tengo la columna de índice no deseado. ¿Cómo puedo evitar esto cuando guardo mis archivos?


Answers

Si quieres un buen formato la siguiente declaración es la mejor:

dataframe_prediction.to_csv('filename.csv', sep=',', encoding='utf-8', index=False)

En este caso, tiene un archivo csv con ',' como separado entre las columnas y el formato utf-8. Además, no aparecerá el índice numérico.


Hay dos formas de manejar la situación en la que no queremos que el índice se almacene en un archivo csv.

  1. Como han dicho otros, puede usar index = False mientras guarda su
    marco de datos a archivo csv.

    df.to_csv('file_name.csv',index=False)

  2. O puede guardar su marco de datos tal como está con un índice, y mientras lee, simplemente suelte la columna sin nombre 0 que contiene su índice anterior. ¡Simple!

    df.to_csv(' file_name.csv ')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


Use index=False .

df.to_csv('your.csv', index=False)

Otra solución si desea mantener esta columna como índice.

pd.read_csv('filename.csv', index_col='Unnamed: 0')

Recientemente me encontré con un problema similar. Encontré simplemente leer los datos en trozos y adjuntarlos a medida que los escribo en trozos para que el mismo csv funcione bien. Mi problema fue agregar una columna de fecha basada en la información en otra tabla, usando el valor de ciertas columnas de la siguiente manera. Esto puede ayudar a aquellos confundidos por dask y hdf5 pero más familiarizados con pandas como yo.

def addDateColumn():
"""Adds time to the daily rainfall data. Reads the csv as chunks of 100k 
   rows at a time and outputs them, appending as needed, to a single csv. 
   Uses the column of the raster names to get the date.
"""
    df = pd.read_csv(pathlist[1]+"CHIRPS_tanz.csv", iterator=True, 
                     chunksize=100000) #read csv file as 100k chunks

    '''Do some stuff'''

    count = 1 #for indexing item in time list 
    for chunk in df: #for each 100k rows
        newtime = [] #empty list to append repeating times for different rows
        toiterate = chunk[chunk.columns[2]] #ID of raster nums to base time
        while count <= toiterate.max():
            for i in toiterate: 
                if i ==count:
                    newtime.append(newyears[count])
            count+=1
        print "Finished", str(chunknum), "chunks"
        chunk["time"] = newtime #create new column in dataframe based on time
        outname = "CHIRPS_tanz_time2.csv"
        #append each output to same csv, using no header
        chunk.to_csv(pathlist[2]+outname, mode='a', header=None, index=None)




python csv indexing pandas