2016-10-16 2 views
1
私のパンダのデータフレームのように構成されて

は次のとおりです。変換する日時は

 date      tag 
0  2015-07-30 19:19:35-04:00 E7RG6 
1  2016-01-27 08:20:01-05:00 ER57G 
2  2015-11-15 23:32:16-05:00 EQW7G 
3  2016-07-12 00:01:11-04:00 ERV7G 
4  2016-02-14 00:35:21-05:00 EQW7G 
5  2016-03-01 00:08:59-05:00 EQW7G 
6  2015-06-19 07:15:06-04:00 ER57G 
7  2016-09-08 18:17:53-04:00 ER5TT 
8  2016-09-03 01:53:45-04:00 EQW7G 
9  2015-11-30 09:31:02-05:00 ER57G 
10 2016-03-03 22:28:26-05:00 ES5TG 
11 2016-02-11 10:39:24-05:00 E5P7G 
12 2015-03-16 07:18:47-04:00 ER57G 
... 

[11015 rows x 2 columns] 
date datetime64[ns, America/New_York] 
tag        object 
dtype: object 

私はインデックスとして列「日付」を設定しようとしています:

df = df.set_index(pd.DatetimeIndex(df['date'])) 

次のエラーを生成します

File "pandas/tslib.pyx", line 3753, in pandas.tslib.tz_localize_to_utc (pandas/tslib.c:64516) 
pytz.exceptions.AmbiguousTimeError: Cannot infer dst time from Timestamp('2015-11-01 01:38:12'), try using the 'ambiguous' argument 

(パンダ0.19を使用して)私はthisに相談しましたが、私はまだ、このエラーを介して動作することができませんでしだ。例えば、

df = df.set_index(pd.DatetimeIndex(df['date']), ambiguous='infer') 

利回り:

File "pandas/tslib.pyx", line 3703, in pandas.tslib.tz_localize_to_utc (pandas/tslib.c:63553) 
pytz.exceptions.AmbiguousTimeError: Cannot infer dst time from 2015-11-01 01:38:12 asthere are no repeated times 

インデックスにdatetime型の列を変換する方法上の任意のアドバイスをいただければ幸いです。

+1

は 'df.set_index(df ['date']、inplace = True)'は動作しません。 – EdChum

+0

はい!それは完璧に働いた。ありがとう@エドム。 – Kappa

答えて

1

列のあなたのdtypeがすでにdatetimeであれば、あなただけの列からDatetimeIndexを構築しようとしなくても​​を呼び出すことができます。

df.set_index(df['date'], inplace=True) 

は、インデックスのDTYPEが傍受されて、ちょうど動作するはずですここにシリーズ/列からインデックスオブジェクトを作成する必要はありません。

+1

そして、それがまだdatetimeでない場合には、 'df.set_index(pd.to_datetime(df ['date'])、inplace = True)'のトリックを行うべきです:) – aiguofer