2015-11-26 22 views
9

Ich habe einen riesigen Datensatz von etwa 20 GB. Ich habe die Daten mit graphlab.SFrame.read_csv() gelesen. Ich habe eine Datumsspalte, die als Zeichenfolge im Format JJJJ-TT-MM gelesen wird. Aber ich möchte, dass die Spalte als Datetime-Objekt gelesen wird. Wie kann ich es tun?String Objekt zu dateTime Objekt in SFrame

Ich verstehe, dass eine Möglichkeit ist, durch jede Zeile zu durchlaufen und ändern Sie es mit Python-Code. Gibt es einen anderen Weg? Kann schneller sein?

Antwort

3
import graphlab 
import datetime as dt 
sf = graphlab.SFrame.read_csv('input.csv') # dates in datestring column 
sf['datetime'] = sf['datestring'].apply(lambda x: dt.datetime.strptime(x, '%Y 
-%d-%m')) 
+0

Vielen Dank! Das hat die Konvertierung sehr schnell gemacht. – Tarun

6

Es gibt eine eingebaute Methode dafür in graphlab.SArray. Wie bei Greg Whittiers Antwort wird angenommen, dass Ihre ursprüngliche Datumsspalte datestring heißt.

import graphlab 
sf = graphlab.SFrame.read_csv('input.csv') 
sf['datetime'] = sf['datestring'].str_to_datetime('%Y-%d-%m') 
+0

Danke :) Das funktioniert. – Tarun