2015-11-26 18 views
9

20GB civarında büyük bir veri kümem var. Graphlab.SFrame.read_csv() kullanarak verileri okudum. Yyyy-dd-mm biçiminde dize olarak okunan bir tarih sütunu var. Ama sütunun datetime nesnesi olarak okunmasını istiyorum. Nasıl yapabilirim?SFrame'de dateTime nesnesine dize nesnesi

Tek bir yolun her satırda yinelemeyi ve python kodunu kullanarak değiştirmesini anlıyorum. Başka yolu var mı? Daha hızlı olabilir mi?

cevap

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

Teşekkür ederiz! Bu dönüşüm gerçekten hızlı yaptı. – Tarun

6

graphlab.SArray'da aslında bunun için yerleşik bir yöntem var. Greg Whittier'ın cevabı gibi, orijinal tarih sütununun datestring olduğunu varsayalım.

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

Teşekkürler :) Bu çalışır. – Tarun

İlgili konular