Mi chiedo come aggiungere nuovi dati DataFrame alla fine di un file csv esistente? To_csv non menziona tale funzionalità. Grazie in anticipo.panda DataFrame output end di csv
risposta
È possibile aggiungere utilizzando to_csv
passando un file che è open in append mode:
with open(file_name, 'a') as f:
df.to_csv(f, header=False)
Usa header=None
, in modo da non aggiungere i nomi delle colonne.
In realtà, i panda ha un wrapper per fare questo in to_csv
utilizzando l'argomento mode
(see Joe's answer):
df.to_csv(f, mode='a', header=False)
Grazie ad Andy, la soluzione completa:
f = open(filename, 'a') # Open file as append mode
df.to_csv(f, header = False)
f.close()
Solo per citare, questo è essenzialmente equivalente a sopra ma dopo questo si rimane con un file chiuso (f), mentre con ['with' ] (http://preshing.com/20110920/the-python-with-statement-by-example) ripulisce quello per te. :) –
È inoltre possibile passare la modalità file come argomento al metodo to_csv
df.to_csv(file_name, header=False, mode = 'a')
una funzione di supporto poco che uso (in base alla risposta di Joe Hooper) con alcune intestazione controllo garanzie per gestire tutto:
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)
- 1. Python panda: output dataframe a csv con numeri interi
- 2. mediana di panda dataframe
- 3. Panda: campionamento di un DataFrame
- 4. Tabella Pytables in panda DataFrame
- 5. panda: normalizzare un DataFrame
- 6. importazione di un file CSV in panda in una dataframe panda
- 7. Come aggiungere una riga di intestazione a un panda DataFrame
- 8. l'indicizzazione di un dataframe panda
- 9. Serializzazione di un panda DataFrame
- 10. panda dataframe perno problema
- 11. Dataframe Unisci in Panda
- 12. intesa panda dataframe indicizzazione
- 13. panda lettura orientamento csv
- 14. Dati di output da tutte le colonne in un dataframe nei panda
- 15. Non si leggono tutte le righe durante l'importazione di csv in dataframe panda
- 16. Possiamo caricare panda DataFrame in. Ironpython?
- 17. nome colonna dataframe panda: rimuovere special charater
- 18. Come ruotare un dataframe in Panda?
- 19. indice di ridenominazione di un dataframe panda
- 20. striature trovando in panda dataframe
- 21. XML per i panda dataframe
- 22. Ordinamento personalizzato in dataframe panda
- 23. Finestra scorrevole su panda Dataframe
- 24. panda dataframe rimuovi colonna costante
- 25. Interpolazione su DataFrame in panda
- 26. Blocca intestazione in panda dataframe
- 27. Panda unione ritorno dataframe vuoto
- 28. ritorna logaritmiche a panda dataframe
- 29. Convertire Pandas dataframe stringa csv
- 30. Ottieni CSV su Spark dataframe
anche bisogno di chiudere il file da f.close(). Andy, tu sei il mio giorno. Funziona come un fascino, io sono di etnia c/C++ e ho bisogno di imparare la filosofia di Python. Qualche suggerimento? – perigee
Andy, davvero apprezzato :-D (non posso usare il simbolo @ :-() – perigee
Punti bonus che questo chiude il file dopo to_csv. Ho un codice che colpisce to_csv e trovavo i file lasciati aperti su iterazioni successive. –