2016-11-29 6 views
1

タイムゾーンデータのない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です。

答えて

3

これは表示上の問題です。日付はまだタイムゾーンが未知です。ちょうどnumpyがreprにオフセットを表示しています。

最新のnumpy(1.11+)にアップグレードすると、ディスプレイの問題が解決されます。

In [31]: np.__version__ 
Out[31]: '1.11.1' 

In [32]: df.index.values[:1] 
Out[32]: array(['2005-01-03T00:00:00.000000000'], dtype='datetime64[ns]') 
関連する問題