2013-04-23 19 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

+0

1.6.2マシンでは動作し、1.7.0では別のマシンで動作します。 – sashkello

答えて

16

代わりにこれを行います。パンダは内部的に日時をdatetime64[ns]としています。このような変換 は非常にバグです(さまざまなnumpyバージョンの問題、特に1.6.2のため)。 パンダのルーチンを使用し、これらのような操作は実際のdatetimeオブジェクトです。あなたは何をしようとしているのですか?

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

+0

2000年のおじいちゃん – sashkello

+0

ha ....また '' parse_dates = True''を渡すことができますread_csv(ドキュメントの他のオプションもあります) – Jeff

関連する問題