是否可以使用熊猫数据框或任何其他方式在不考虑闰年闰年 2 月 29 日的情况下插入日期?



我有一个65年(1941-2005(的时间序列。我在数据框中插入了一个日期列,如下所示:

Dataset= pd.read_csv('city10.csv', header = None)
Dataset['Date'] = pd.date_range(start='1/1/1951', periods=len(Dataset), freq='D')
Dataset.set_index('Date', inplace=True)

这将生成以下数据帧

Date         0       1       2       3  ...       5       6        7         8                                                                
1941-01-01  0.0  17.844  155.33  426.53  ...  61.102  47.929 -4.58980 -4.597900
1941-01-02  0.0  18.582  124.23  425.69  ...  70.191  51.980 -3.00210 -3.793400
1941-01-03  0.0  19.464  111.64  425.03  ...  74.315  56.936 -1.63070 -2.724700
...     ...     ...     ...  ...     ...     ...      ...       ...
2005-11-23  0.0  17.832  140.09  439.76  ...  63.003  49.942 -0.79576 -5.252300
2005-11-24  0.0  17.904  149.54  439.58  ...  58.072  47.666 -4.88510 -5.032600

上面生成的日期在闰年生成 2 月 29 日。我不想生成 2 月 29 日的日期,即对于我想考虑每年 365 天的系列。它不应该在闰年产生 2 月 29 日。

一个想法是生成长度更长的date_range,然后删除29.2.并按DataFrame的实际长度分配给列:

d = pd.date_range(start='1/1/1951', periods=len(Dataset) + int(len(Dataset) // 365), freq='D')
d = d[(d.month != 2) | (d.day != 29)]
Dataset['Date'] = d[:len(Dataset)]

最新更新