序列化和反序列化的熊猫periodIndex系列

时间:2019-06-04 10:38:49

标签: json python-3.x pandas serialization

使用PeriodIndex时,熊猫Series.to_json()函数正在创建不可读的JSON。 发生的错误是: json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 5 (char 4)

我尝试过更改方向,但是在序列化和反序列化的所有这些组合中,索引丢失了。

idx = pd.PeriodIndex(['2019', '2020'], freq='A')
series = pd.Series([1, 2], index=idx)
json_series = series.to_json() # This is a demo - in reality I'm storing this in a database, but this code throws the same error
value = json.loads(json_series)

A link to the pandas to_json docs A link to the python json lib docs

我不使用json.dumps的原因是熊猫系列对象不可序列化。

Python 3.7.3熊猫0.24.2

1 个答案:

答案 0 :(得分:0)

一种解决方法是在转储之前将PeriodIndex转换为常规Index,并在加载后将其转换回PeriodIndex

regular_idx = period_idx.astype(str)
# then dump
# after load
period_idx = pd.to_datetime(regular_idx).to_period()