タイムゾーンデータのないdatetimeでcsvを読み込みますが、datetimeカラムをインデックスとして使用すると、タイムゾーンオフセットが追加されます。これを防ぐ方法を教えてください。datetime64シリーズをpandasデータフレームインデックスに設定すると、自動的にタイムゾーンオフセットが追加されます
データ:
Time (UTC),Open,High,Low,Close,Volume
2005.01.03 00:00:00,1.8275,1.858,1.7971,1.819,41998.5
2005.01.10 00:00:00,1.8095,1.8376,1.771,1.766,46353.9
それは毎週OHLCデータです。データの読み込み後
import pandas as pd
df = pd.read_csv("test.csv", parse_dates=["Time (UTC)"])
、何のタイムゾーンオフセットはありません。
in:
df["Time (UTC)"].head(2)
out:
0 1973-02-26
1 1973-03-05
Name: Time (UTC), dtype: datetime64[ns]
しかし、私はインデックスとしてこのデータを設定すると、タイムゾーンのオフセットが追加されます:
in:
df.index = df["Time (UTC)"]
df.index.values[:1]
out:
array(['1973-02-26T01:00:00.000000000+0100'], dtype='datetime64[ns]')
df.index
を使用して、私はそのdtype='datetime64[ns]'
を返すので、時間帯オフセットが追加されていても、追加されたタイムゾーンはありません(これは夏時間もあるようです)。時間帯をdf = df.tz_localize("UTC")
でUTCに設定した場合、df.index
は私にdtype = 'datetime64[ns, UTC]'
と表示されます。ただし、オフセットには影響しません。
データが入っているタイムゾーンを知っているので、タイムゾーンのオフセットは必要ありません。私のマシンのタイムゾーンに基づいて、間違ったタイムゾーンがずれることはありません。 パフォーマンス上の理由からpd.read_csvを使用すると、[Time(UTC)]列がインデックスとして設定されていましたが、そのときに同じ動作が発生します。
タイムゾーンオフセットが追加されないようにするにはどうすればよいですか?
私のpythonバージョンは2.7.11(Anaconda 2.5.0 64 Bit)、pandasバージョンは0.17.1、numpy 1.10.4です。