read_csv read panda functions example dtype chunksize python csv pandas dataframe

python - functions - pandas read_csv dtype example



Pandas DataFrame salida final de CSV (4)

Gracias a Andy, la solución completa:

f = open(filename, ''a'') # Open file as append mode df.to_csv(f, header = False) f.close()

Me pregunto cómo agregar nuevos datos de DataFrame al final de un archivo csv existente. El to_csv no menciona tal funcionalidad. Gracias de antemano.


También puede pasar el modo de archivo como un argumento al método to_csv

df.to_csv(file_name, header=False, mode = ''a'')


Una pequeña función auxiliar que utilizo (según la respuesta de Joe Hooper) con algunas salvaguardas de comprobación de encabezado para manejar todo:

def appendDFToCSV_void(df, csvFilePath, sep=","): import os if not os.path.isfile(csvFilePath): df.to_csv(csvFilePath, mode=''a'', index=False, sep=sep) elif len(df.columns) != len(pd.read_csv(csvFilePath, nrows=1, sep=sep).columns): raise Exception("Columns do not match!! Dataframe has " + str(len(df.columns)) + " columns. CSV file has " + str(len(pd.read_csv(csvFilePath, nrows=1, sep=sep).columns)) + " columns.") elif not (df.columns == pd.read_csv(csvFilePath, nrows=1, sep=sep).columns).all(): raise Exception("Columns and column order of dataframe and csv file do not match!!") else: df.to_csv(csvFilePath, mode=''a'', index=False, sep=sep, header=False)


Puede adjuntar utilizando to_csv pasando un archivo que está abierto en modo de adición :

with open(file_name, ''a'') as f: df.to_csv(f, header=False)

Use header=None , para no anexar los nombres de columna.

De hecho, pandas tiene un envoltorio para hacer esto en to_csv usando el argumento de mode ( ver la respuesta de Joe ):

df.to_csv(f, mode=''a'', header=False)