2016-11-10 6 views
1

Pandas DataFrameでタイムゾーンを変更するにはどうすればよいですか?pandas forex DataFrameのタイムゾーンを変更

1分EURUSDデータ(DateTime/Open/High/Low/Close/Vol)を読み取るための簡単なコードを書きました。サンプルデータはESTタイムゾーンにあり、UTCに変換する必要があります。

df.tz_convert(pytz.timezone('UTC')) 

が失敗しています。 DAT_ASCII_EURUSD_M1_SmallSample.csvファイルからエラーで

TypeError: Cannot convert tz-naive timestamps, use tz_localize to localize

サンプルデータ:

20160103 170000;1.087010;1.087130;1.087010;1.087130;0 20160103 170100;1.087120;1.087120;1.087120;1.087120;0 20160103 170200;1.087080;1.087220;1.087080;1.087220;0 20160104 000100;1.087830;1.087840;1.087640;1.087640;0 20160104 000200;1.087640;1.088220;1.087640;1.088220;0 20160104 000300;1.088220;1.088220;1.088040;1.088050;0 20160105 000000;1.082270;1.082270;1.082160;1.082160;0 20160105 000100;1.082160;1.082160;1.082130;1.082140;0 20160105 000200;1.082150;1.082240;1.082150;1.082240;0

import pandas as pd 
import pytz 

filename = "DAT_ASCII_EURUSD_M1_SmallSample.csv" 

df = pd.read_csv(filename, sep=";", names=['DateTime','Open','High','Low','Close','Vol'], 
       parse_dates = [0], index_col = 'DateTime') 

df.tz_localize(pytz.timezone('US/Eastern')) 
df.tz_convert(pytz.timezone('UTC')) 

print(df) 

答えて

2

あなたが使用する必要があります。tz_localize以来

df = df.tz_localize(pytz.timezone('US/Eastern')) 
df = df.tz_convert(pytz.timezone('UTC')) 

は、インプレース操作ではなく、新しいDataFrameを返します。

関連する問題