将天数据转换为列表中的年数据

Convert days data in years data in a list

我想用 1850 年到 2014 年的温度数据做一个时间序列。我有一个问题,因为当我绘制时间序列时,开始是 0,它对应于 1850 年 1 月的第 1 天,它在第 60 天停止230 与 2014 年 12 月 31 日。

我尝试做一个循环来创建一个新列表,其中的时间以月-年为单位,但没有成功,并使用这个新列表和我的初始温度列表创建了绘图。 这是我测试过的那种循环:

days = list(range(1,365+1))
years = []
y = 1850
years.append(y)

while y<2015:
    for i in days:
        years.append(y+i)
    y = y+1
del years [-1]

dsetyears = Dataset(years)

我也尝试使用名为“datetime”的工具,但它也不起作用(也许这个工具更好,因为它会考虑到 bissextile 年份...)。

day_number = "0"
year = "1850"
res = datetime.strptime(year + "-" + day_number, "%Y-%j").strftime("%m-%d-%Y") 

如果有人有线索或线索,我可以调查一下,我很感兴趣。 提前致谢!

您可以使用 datetime 模块来实现。让我们声明开始和结束日期。

import datetime

dates = []

starting_date = datetime.datetime(1850, 1, 1)
ending_date = datetime.datetime(2014, 1, 1)

然后我们可以创建一个 while 循环并检查结束日期是否大于或等于开始日期,并为每次迭代使用 timedelta 函数添加 1 天。在迭代之前,我们将格式化日期作为字符串附加到 dates 列表。

while starting_date <= ending_date:

    dates.append(starting_date.strftime("%m-%d-%Y"))
    starting_date += datetime.timedelta(days=1)