2015-11-26 15 views
9

Ho un enorme set di dati di circa 20 GB. Ho letto i dati usando graphlab.SFrame.read_csv(). Ho una colonna della data che viene letta come stringa nel formato aaaa-gg-mm. Ma voglio che la colonna venga letta come un oggetto datetime. Come posso farlo?Oggetto stringa fino ad oraOggetto temporale in SFrame

Capisco che un modo è quello di scorrere ogni riga e cambiarlo usando il codice python. C'è un altro modo? Potrebbe essere più veloce?

risposta

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

Grazie! Questo ha fatto la conversione davvero veloce. – Tarun

6

Esiste in realtà un metodo incorporato per questo in graphlab.SArray. Come la risposta di Greg Whittier, supponiamo che la colonna della data originale sia chiamata datestring.

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

Grazie :) Funziona. – Tarun

Problemi correlati