2015-05-18 13 views
5

Ho un dataframe come questo:cambio formato datetime quando salvataggio di file CSV python

In [67]: 
call_df.head() 
Out[67]: 
timestamp types 
1 2014-06-30 07:00:55 Call_O 
2 2014-06-30 07:00:05 Call_O 
3 2014-06-30 06:54:55 Call_O 
501 2014-06-30 11:24:01 Call_O 

Quando ho salvato che dataframe al file CSV, il formato di datetime è cambiare così come perdo i secondi. Ho appena messo il codice per salvare in file CSV:

call_df.to_csv('D:/Call.csv') 

L'output del file CSV è come questo:

enter image description here

Qui voglio chiedere, come salvare lo stesso formato datetime da dataframe in file CSV

+0

Hai controllato come appare il file CSV non elaborato? I secondi potrebbero essere rimossi dallo strumento che usi per visualizzarlo (Excel?). –

+0

Aha, sì .. ho visto, come cambiare quel formato? –

+0

Se questa è una domanda sulla formattazione excel, contrassegnala con Excel, se il formato della data desiderato nel file è errato, guarda la risposta di @EdChum e/o pubblica i dati grezzi dal file csv (aprilo con blocco note, non Excel) – firelynx

risposta

7

to_csv accetta un param date_format, quindi per favore provate questo:

call_df.to_csv('D:/Call.csv', date_format='%Y-%m-%d %H:%M:%S') 

Sui vostri dati di esempio impostare questo prodotto:

timestamp,types 
2014-06-30 07:00:55,Call_O 
2014-06-30 07:00:05,Call_O 
2014-06-30 06:54:55,Call_O 
2014-06-30 11:24:01,Call_O 
0

Cambia i tuoi colonne datetime a stringa da:

call_df['timestamp'] = call_df['timestamp'].apply(lambda v: str(v)) 

Quindi è possibile salvare in formato CSV per mantenere il formato

+0

Ho provato, non funziona –

1

È il problema non è un problema python e non può essere risolto direttamente. Perché?

quando si apre il file csv da excel, convertirà i dati in qualsiasi tipo, in questo caso i dati verranno convertiti in tipo di data, quindi verrà applicato il formato data predefinito a tali dati. Inoltre, non è possibile controllare il formato della data del file excel poiché i file CSV sono solo un file di testo, nessun meta o dati nascosti che consigliano a Excel di procedere.

Se si desidera controllare il formato in Excel, è necessario forzare i dati a essere stringa, non data. la maggior parte delle volte aggiungiamo "davanti a qualsiasi dato che preferiamo il formato stringa". Otterrai la visualizzazione del formato corretta come vuoi ma perderai il tipo di dati della data.

0

La risposta a questo problema è un processo in due fasi:

1) Convertire la colonna timestamp alla data ora prima:

call_df['timestamp'] = call_df['timestamp'].astype('datetime64[ns]') 

2) Aggiungere date_format argomento durante l'utilizzo del "to_csv" dopo Esecuzione del primo passaggio:

+0

Questa risposta non aggiunge nulla di nuovo – EdChum

+0

Non funziona per [email protected] –

+0

Il punto qui è che la tua risposta non ha aggiunto significativamente nuove o diverse alle risposte esistenti, postare risposte che sono essenzialmente le stesse di altre risposte senza nulla di sostanzialmente differente aggiunge solo rumore a SO – EdChum

Problemi correlati