2013-04-23 13 views
11

Das folgende Stück Code:Kann nicht konvertieren Daten 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') 

arbeitet an einer Maschine (Fenster) in Ordnung und funktioniert nicht auf einem anderen (Linux). Sowohl Nummy als auch Pandas sind auf beiden installiert.

Der Fehler, den ich bekommen ist:

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

Was bedeuten diese Fehler? Ich sehe es zum ersten Mal und es gibt nicht viel im Internet, das ich finden kann. Ist es eine fehlende Abhängigkeit?

+0

Sind die numpy Versionen auf beiden Maschinen gleich? ('print np .__ version__'). Wenn ich mich richtig erinnere, ist "datetime64" eine ziemlich neue Ergänzung. – mgilson

+0

1.6.2 auf der Maschine, wo es funktioniert und 1.7.0 auf einer anderen. – sashkello

Antwort

16

Tun Sie dies stattdessen. Pandas speichert das aktuelle Datum als datetime64[ns]. Conversions wie diese sind sehr fehlerhaft (wegen der Probleme in verschiedenen numpy Version 1.6.2 besonders). Verwenden Sie die Pandas-Routinen, dann arbeiten Sie wie diese tatsächlichen Datetime-Objekte sind. Was versuchst du zu machen?

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

Arbeitete perfekt! Vielen Dank! Ich habe nur eine Datei mit Datumsangaben als Strings und konvertiere sie so in Objekte, mit denen ich arbeiten kann ... Prost :) – sashkello

+0

Herzlichen Glückwunsch zu 2000, Kumpel – sashkello

+0

ha .... kann auch versuchen, '' parse_dates = True'' zu übergeben read_csv (mehr Optionen auch in der Dokumentation) – Jeff