2013-04-23 200 views
11

下面的代碼:無法轉換日期datetime64

import pandas as pd 
import numpy as np 

data = pd.DataFrame({'date': ('13/02/2012', '14/02/2012')}) 
data['date'] = data['date'].astype('datetime64') 

一臺機器上正常工作(Windows)和另一個(Linux版)不能正常工作。兩者都安裝了numpy和pandas。

我得到的錯誤是:

ValueError: Cannot create a NumPy datetime other than NaT with generic units 

這個錯誤是什麼意思?我有史以來第一次看到它,網絡上沒有太多可以找到的東西。它是否缺少一些依賴性?

+0

兩臺機器上的numpy版本是否相同? ('print np .__ version__')。如果我沒有記錯,'datetime64'是一個相當新近的加法。 – mgilson 2013-04-23 00:12:45

+0

1.6.2在機器上運行,1.7.0在另一個機器上運行。 – sashkello 2013-04-23 00:15:47

回答

16

取而代之。 Pandas在內部保存datestimes作爲datetime64[ns]。這樣的轉換 是非常麻煩的(因爲在各種numpy版本,尤其是1.6.2的問題)。使用 熊貓例程,然後像這樣操作它們是實際的日期時間對象。你想做什麼?

In [30]: pandas.to_datetime(data['date']) 
Out[30]: 
0 2012-02-13 00:00:00 
1 2012-02-14 00:00:00 
Name: date, dtype: datetime64[ns] 
+0

工作完美!謝謝!我只是有一個日期爲字符串的文件,因此將它們轉換爲可以工作的對象...乾杯:) – sashkello 2013-04-23 00:21:06

+0

恭喜2000年,隊友 – sashkello 2013-04-23 00:21:45

+0

哈....也可以嘗試傳遞''parse_dates = True''到read_csv(文檔中的更多選項) – Jeff 2013-04-23 00:26:07