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')