2015-11-26 13 views
9

Mam ogromny zbiór danych o wartości około 20 gb. Czytałem dane za pomocą graphlab.SFrame.read_csv(). Mam kolumnę daty, która jest odczytywana jako ciąg znaków w formacie rrrr-dd-mm. Ale chcę, aby kolumna została odczytana jako obiekt datetime. Jak mogę to zrobić?Obiekt String do obiektu dateTime w SFrame

Rozumiem, że jednym ze sposobów jest iteracja w każdym wierszu i zmiana go za pomocą kodu Pythona. Czy jest jakiś inny sposób? Może być szybciej?

Odpowiedz

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

Dziękujemy! Ta konwersja była naprawdę szybka. – Tarun

6

W rzeczywistości jest to wbudowana metoda w graphlab.SArray. Podobnie jak w przypadku odpowiedzi Grega Whittiera, przypuśćmy, że twoja oryginalna kolumna z datą nazywa się datestring.

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

Dzięki :) To działa. – Tarun

Powiązane problemy