我有一个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)]