1

我无法在不迭代并在最后一个小时后添加一个小时的情况下创建给定年份Pandas Series的每个小时(作为datetime对象),这很慢。有没有办法并行地做到这一点。

我的输入是一年,输出应该是那一年Pandas Series的每个小时。

4

1 回答 1

4

您可以使用pd.date_rangewhichfreq='H'是每小时频率:

23:00:00由@ALollz 评论后编辑

year = 2019

pd.Series(pd.date_range(start=f'{year}-01-01', end=f'{year}-12-31 23:00:00', freq='H'))

0      2019-01-01 00:00:00
1      2019-01-01 01:00:00
2      2019-01-01 02:00:00
3      2019-01-01 03:00:00
4      2019-01-01 04:00:00
5      2019-01-01 05:00:00
6      2019-01-01 06:00:00
7      2019-01-01 07:00:00
8      2019-01-01 08:00:00
9      2019-01-01 09:00:00
10     2019-01-01 10:00:00
11     2019-01-01 11:00:00
12     2019-01-01 12:00:00
13     2019-01-01 13:00:00
14     2019-01-01 14:00:00
15     2019-01-01 15:00:00
16     2019-01-01 16:00:00
17     2019-01-01 17:00:00
18     2019-01-01 18:00:00
19     2019-01-01 19:00:00
20     2019-01-01 20:00:00
21     2019-01-01 21:00:00
22     2019-01-01 22:00:00
23     2019-01-01 23:00:00
24     2019-01-02 00:00:00
25     2019-01-02 01:00:00
26     2019-01-02 02:00:00
27     2019-01-02 03:00:00
28     2019-01-02 04:00:00
29     2019-01-02 05:00:00
30     2019-01-02 06:00:00
31     2019-01-02 07:00:00
32     2019-01-02 08:00:00
33     2019-01-02 09:00:00
34     2019-01-02 10:00:00
35     2019-01-02 11:00:00
36     2019-01-02 12:00:00
37     2019-01-02 13:00:00
38     2019-01-02 14:00:00
39     2019-01-02 15:00:00
40     2019-01-02 16:00:00
41     2019-01-02 17:00:00
42     2019-01-02 18:00:00
43     2019-01-02 19:00:00
44     2019-01-02 20:00:00
45     2019-01-02 21:00:00
46     2019-01-02 22:00:00
47     2019-01-02 23:00:00
48     2019-01-03 00:00:00
49     2019-01-03 01:00:00
               ...        
8711   2019-12-29 23:00:00
8712   2019-12-30 00:00:00
8713   2019-12-30 01:00:00
8714   2019-12-30 02:00:00
8715   2019-12-30 03:00:00
8716   2019-12-30 04:00:00
8717   2019-12-30 05:00:00
8718   2019-12-30 06:00:00
8719   2019-12-30 07:00:00
8720   2019-12-30 08:00:00
8721   2019-12-30 09:00:00
8722   2019-12-30 10:00:00
8723   2019-12-30 11:00:00
8724   2019-12-30 12:00:00
8725   2019-12-30 13:00:00
8726   2019-12-30 14:00:00
8727   2019-12-30 15:00:00
8728   2019-12-30 16:00:00
8729   2019-12-30 17:00:00
8730   2019-12-30 18:00:00
8731   2019-12-30 19:00:00
8732   2019-12-30 20:00:00
8733   2019-12-30 21:00:00
8734   2019-12-30 22:00:00
8735   2019-12-30 23:00:00
8736   2019-12-31 00:00:00
8737   2019-12-31 01:00:00
8738   2019-12-31 02:00:00
8739   2019-12-31 03:00:00
8740   2019-12-31 04:00:00
8741   2019-12-31 05:00:00
8742   2019-12-31 06:00:00
8743   2019-12-31 07:00:00
8744   2019-12-31 08:00:00
8745   2019-12-31 09:00:00
8746   2019-12-31 10:00:00
8747   2019-12-31 11:00:00
8748   2019-12-31 12:00:00
8749   2019-12-31 13:00:00
8750   2019-12-31 14:00:00
8751   2019-12-31 15:00:00
8752   2019-12-31 16:00:00
8753   2019-12-31 17:00:00
8754   2019-12-31 18:00:00
8755   2019-12-31 19:00:00
8756   2019-12-31 20:00:00
8757   2019-12-31 21:00:00
8758   2019-12-31 22:00:00
8759   2019-12-31 23:00:00
8760   2020-01-01 00:00:00
Length: 8761, dtype: datetime64[ns]

请注意,如果您的 Python 版本低于 3.6,请使用.format字符串格式化:

year = 2019

pd.Series(pd.date_range(start='{}-01-01'.format(year), end='{}-01-01 23:00:00'.format(year), freq='H'))
于 2019-06-17T15:46:15.147 回答