如何在Pandas中绕过日期范围限制进行绘图



如果以前有人问过这个问题,我很抱歉,但我似乎找不到一个能描述我当前问题的问题。

基本上,我有一个大型气候数据集,它不一定是";真实的";日期。数据集开始于";第一年";并转到";9999年";。这些日期存储为字符串,如Jan-01、Feb-01、Mar-01等,其中数字表示年份。当试图将此列转换为日期-时间对象时,我得到了一个超出范围的错误。(我对此的解读表明,这是由于可能存在的日期时间戳的64位限制(

解决这个问题/处理日期信息的好方法是什么,这样我就可以有效地绘制出相关数据与这些日期之间的关系,在这大约10000年的时间里?

感谢

cftime库是专门为此目的创建的,xarray有一个方便的xr.cftime_range函数,可以轻松创建这样的范围:

In [3]: import xarray as xr, pandas as pd
In [4]: date_range = xr.cftime_range('0001-01-01', '9999-01-01', freq='D')
In [5]: type(date_range)
Out[5]: xarray.coding.cftimeindex.CFTimeIndex

这创建了一个CFTimeIndex对象,它可以很好地与pandas:配合使用


In [8]: df = pd.DataFrame({"date": date_range, "vals": range(len(date_range))})
In [9]: df
Out[9]:
date     vals
0        0001-01-01 00:00:00        0
1        0001-01-02 00:00:00        1
2        0001-01-03 00:00:00        2
3        0001-01-04 00:00:00        3
4        0001-01-05 00:00:00        4
...                      ...      ...
3651692  9998-12-28 00:00:00  3651692
3651693  9998-12-29 00:00:00  3651693
3651694  9998-12-30 00:00:00  3651694
3651695  9998-12-31 00:00:00  3651695
3651696  9999-01-01 00:00:00  3651696
[3651697 rows x 2 columns]

最新更新