BUG: tz info lost by set_index and reindex by sinhrks · Pull Request #7092 · pandas-dev/pandas (original) (raw)

Closes #6631. Closes #5878. Regarding #3950, original problem can be fixed by this, but groupby problem isn't.

Also, this includes the fix for MultiIndex.get_level_values doesn't retain tz and freq, as the method is used in set_index.

# current master
>>> import pandas as pd
>>> didx = pd.DatetimeIndex(start='2013/01/01', freq='H', periods=4, tz='Asia/Tokyo')
>>> pidx = pd.PeriodIndex(start='2013/01/01', freq='H', periods=4)

>>> midx = pd.MultiIndex.from_arrays([didx, pidx])
>>> midx.get_level_values(0)
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-12-31 15:00:00, ..., 2012-12-31 18:00:00]
Length: 4, Freq: None, Timezone: None

>>> midx.get_level_values(1)
Int64Index([376944, 376945, 376946, 376947], dtype='int64')
# after fix
>>> midx.get_level_values(0)
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00+09:00, ..., 2013-01-01 03:00:00+09:00]
Length: 4, Freq: H, Timezone: Asia/Tokyo

>>> midx.get_level_values(1)
PeriodIndex([u'2013-01-01 00:00', u'2013-01-01 01:00', u'2013-01-01 02:00', u'2013-01-01 03:00'], freq='H')