Skip to content

Commit 380eaf1

Browse files
TomAugspurgerjreback
authored andcommitted
BUG: Fixed msgpack roundtrip with PeriodIndex (#24335)
Closes #24135
1 parent 1bfeb90 commit 380eaf1

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

pandas/core/indexes/period.py

+2
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ def _simple_new(cls, values, name=None, freq=None, **kwargs):
227227
values = np.asarray(values)
228228
if is_float_dtype(values):
229229
raise TypeError("PeriodIndex._simple_new does not accept floats.")
230+
if freq:
231+
freq = Period._maybe_convert_freq(freq)
230232
values = PeriodArray(values, freq=freq)
231233

232234
if not isinstance(values, PeriodArray):

pandas/io/packers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ def decode(obj):
605605
elif typ == u'datetime_index':
606606
data = unconvert(obj[u'data'], np.int64, obj.get(u'compress'))
607607
d = dict(name=obj[u'name'], freq=obj[u'freq'])
608-
result = DatetimeIndex._simple_new(data, **d)
608+
result = DatetimeIndex(data, **d)
609609
tz = obj[u'tz']
610610

611611
# reverse tz conversion

pandas/tests/io/test_packers.py

+6
Original file line numberDiff line numberDiff line change
@@ -940,3 +940,9 @@ def test_msgpacks_legacy(self, current_packers_data, all_packers_data,
940940
except ImportError:
941941
# blosc not installed
942942
pass
943+
944+
def test_msgpack_period_freq(self):
945+
# https://github.com/pandas-dev/pandas/issues/24135
946+
s = Series(np.random.rand(5), index=date_range('20130101', periods=5))
947+
r = read_msgpack(s.to_msgpack())
948+
repr(r)

0 commit comments

Comments
 (0)