首页 > 解决方案 > Python:将日期的天数设置为绘图的索引

问题描述

我有一个以日期为索引的数据框,我需要绘制一个以索引为 x 轴的图表。问题是我不希望日期作为索引,而是从第一天开始的日期。我希望我足够清楚。这是我的数据框:

             Open    High    Low
Date            
2012-10-15  632.35  635.13  623.85
2012-10-16  635.37  650.30  631.00
2012-10-17  648.87  652.79  644.00
2012-10-18  639.59  642.06  630.00
2012-10-19  631.05  631.77  609.62
... ... ... ...
2013-01-08  529.21  531.89  521.25
2013-01-09  522.50  525.01  515.99
2013-01-10  528.55  528.72  515.52
2013-01-11  521.00  525.32  519.02
2013-01-14  502.68  507.50  498.51

最终结果应该是这样的:

在此处输入图像描述

标签: pythonpandasmatplotlibindexing

解决方案


IIUC,我们可以取最小值并进行简单的求和,同时np.timedelta将 DateTime 转换为天数。

import numpy as np

df['days'] = (df.index - df.index.min()) / np.timedelta64(1,'D')

print(df)

              Open    High     Low  days
Date                                    
2012-10-15  632.35  635.13  623.85   0.0
2012-10-16  635.37  650.30  631.00   1.0
2012-10-17  648.87  652.79  644.00   2.0
2012-10-18  639.59  642.06  630.00   3.0
2012-10-19  631.05  631.77  609.62   4.0
2013-01-08  529.21  531.89  521.25  85.0
2013-01-09  522.50  525.01  515.99  86.0
2013-01-10  528.55  528.72  515.52  87.0
2013-01-11  521.00  525.32  519.02  88.0
2013-01-14  502.68  507.50  498.51  91.0

推荐阅读