2015-05-18 4 views
5

ich einen Datenrahmen wie diese:Datetime-Format ändern, wenn speichert in CSV-Datei 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 

Als ich diesen Datenrahmen zu CSV-Datei gespeichert, das Format für Datum und Uhrzeit ist auch ändern, wie ich die Sekunden verlieren. Ich habe nur diesen Code in CSV-Datei zu speichern:

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

Die CSV-Datei ausgegeben wird wie folgt aus:

enter image description here

In hier möchte ich fragen, wie man das gleiche Datetime-Format speichern aus Datenrahmen in cSV-Datei

+0

Haben Sie überprüft, wie die rohe CSV-Datei aussieht? Die Sekunden könnten durch das Werkzeug entfernt werden, mit dem Sie es anzeigen (Excel?). –

+0

Aha, ja .. ich habe gesehen, wie man dieses Format ändert? –

+0

Wenn es sich um eine Frage zur Excel Formatierung handelt, markieren Sie diese bitte mit Excel, wenn das von Ihnen gewünschte Datumsformat in der Datei falsch ist, schauen Sie sich bitte @EdChums Antwort an und/oder posten Sie die Rohdaten aus der CSV Datei (öffnen Sie diese mit Notizblock, nicht überragend) – firelynx

Antwort

7

to_csv akzeptiert eine date_format param zu behalten, dies so versuchen Sie es:

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

Auf Ihrer Beispieldaten dies ergab:

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

Ihre Datumzeit ändern Spalten Zeichenfolge von:

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

dann können Sie zu csv speichern das Format

+0

Ich habe es versucht, es funktioniert nicht –

1

Sie Problem ist kein Python-Problem und kann nicht direkt behoben werden. Warum?

Wenn Sie die CSV-Datei von Excel öffnen, wird es Ihre Daten in jeden beliebigen Typ konvertieren, in diesem Fall müssen Ihre Daten in Datum konvertiert werden, dann Excel anwenden Standard-Datumsformat auf diese Daten. Außerdem können Sie das Datumsformat der Excel-Datei nicht steuern, da CSV-Dateien nur eine Textdatei sind, keine Meta-Daten oder verborgene Daten, die zur Weiterverarbeitung empfohlen werden.

Wenn Sie immer noch Ihr Format in Excel steuern möchten, müssen Sie Ihre Daten zwingen, String, nicht Datum zu sein. In den meisten Fällen fügen wir 'vor irgendwelchen Daten, die wir bevorzugen, das String-Format hinzu. Sie erhalten die korrekte Formatanzeige, aber Sie verlieren Ihren Datumsdatentyp.

0

Die Antwort auf dieses Problem ist ein zweistufiger Prozess:

1) zunächst die Zeitstempel Spalte Datum Zeit Konvertieren:

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

2) date_format Argument hinzufügen, während die "to_csv" mit nach Ausführen des ersten Schritts:

+0

Diese Antwort fügt nichts hinzu – EdChum

+0

Funktioniert es nicht für [email protected] –

+0

Der Punkt hier ist, dass Ihre Antwort nicht wesentlich neu oder anders zu den bestehenden Antworten hinzugefügt hat, Entsendung Antworten, die im Wesentlichen die gleichen wie andere Antworten sind, ohne etwas wesentlich anderes fügt nur Rauschen zu SO – EdChum