2014-01-08 108 views
0

我限定的DateTimeField字段雖然Django的爲:如何將pandas Timestamp添加到sqlite3?

class test(models.Model): 
    t = models.DateTimeField() 

在熊貓,我有一個數據幀作爲

a=DataFrame(date_range('2014-1-1','2014-1-2')) 
type(a.ix[0,0]) 

其示出了:pandas.tslib.Timestamp

當我試圖插入數據通過:

stmt="insert into dry_powder_test('t') values(?)" 
cnx = sqlite3.connect(db_path) 
cnx.executemany(stmt, a.to_records(index=False).tolist()) 
cnx.commit() 

沒有錯誤。但是

test.objects.get(pk=1).t 

給我空的結果。雖然在數據庫我實際看到

(u'project_test', 't', 1388534400000000000L) 

我應該如何正確地做到這一點?

回答

0

你的Django模型有一個字段T,其類型爲django.model.DateTimeField,並保存到數據庫pandas.data_range,這是從1970年

  1. 爲什麼你混合Django和轉換implicite到毫秒熊貓,雖然你沒有關於Python的基礎知識?
  2. 爲什麼你的班級名稱不是以大寫字母開頭?
  3. 爲什麼你編寫原始的sql而不是使用Django模型?

---編輯---再次 你好,

我已經解決您的問題。我用Django的ORM建立有效的模型,所以:

[1]: a1 = test() 

[2]: a1.t 

[3]: a1.t = datetime.datetime(2012, 2, 26, 13, 0, 0, 775217) 

然後我檢查DB:

$./manage.py dbshell 
sqlite> select * from polls_test; 
1|1388534400000000000 
2|1388620800000000000 
3|2012-02-26 13:00:00.775217 
+0

1.我看不出有什麼毛病混合Django和熊貓。我需要熊貓來做計算和Django來管理和顯示數據。 2.我在這裏寫了測試類作爲例子。 3.我從熊貓輸入數據到sqlite3。 如果你忽略了Django的部分,只是插入熊貓的時間戳是有問題的sqlite3 – user3053186

+0

使用Django來顯示數據就像射擊與大炮一起飛行。你應該更好地使用ipython notebok:http://ipython.org/notebook.html – 404pio

相關問題