如何使用timdeltaindex将pandas数据转换为json?

时间:2018-06-07 16:57:51

标签: pandas timedelta

假设我有以下示例:

import pandas as pd

In [11]: df = pd.DataFrame(data=[0.0], index=pd.TimedeltaIndex([250], unit='d'))

In [12]: df.to_json(orient='split', date_format='iso')
Out[12]: '{"columns":[0],"index":["1970-09-08T00:00:00.000Z"],"data":[[0.0]]}'

In [13]: 

如您所见,我想将pandas数据帧转换为json格式。不幸的是,我找不到如何将索引转换为所需输出的方法。在这种情况下,索引应为250天。如果我在python中打印df,这就是我所看到的:

df
Out[13]: 
            0
250 days  0.0

In [14]: 

有没有办法实现这一点,即我可以重建数据框以获得正确的索引。

1 个答案:

答案 0 :(得分:-1)

您可以将类似['days']的列添加到数据框:

df['days'] = df.index.days

然后df.to_json()将只有一个名为“days”的密钥,其天数。

或者,如果您希望索引说“250天”,只需强制转换为str:

df.index = df.index.astype(str)

df.to_json(orient='split', date_format='iso')的结果将是:

'{"columns":[0,"days"],"index":["250 days"],"data":[[0.0,250]]}'