如何使用python为日期字段中的每个日期添加0到23小时作为后缀
Posted
技术标签:
【中文标题】如何使用python为日期字段中的每个日期添加0到23小时作为后缀【英文标题】:How to add 0 to 23 hours as suffix to each date in a datefield using python 【发布时间】:2021-04-16 16:16:42 【问题描述】:我正在尝试为日期时间字段中的每个日期添加 0 到 23 小时,有人可以帮我实现这一目标吗?
我在网上搜索,但找不到正确的答案
预期输入和输出的附加图像,提前致谢。
【问题讨论】:
相关:***.com/a/46218695/10197418 【参考方案1】:假设您将这些日期作为 pandas df 的索引,您将转换为日期时间并使用小时作为频率。然后您可以strftime
到所需的输出格式。例如:
import pandas as pd
df = pd.DataFrame(index=pd.to_datetime(['01/11/2020', '02/11/2020', '03/11/2020'], dayfirst=True))
new_dti = df.asfreq('H').index
new_dti.strftime('%d/%m/%Y %H:%M')
Index(['01/11/2020 00:00', '01/11/2020 01:00', '01/11/2020 02:00',
'01/11/2020 03:00', '01/11/2020 04:00', '01/11/2020 05:00',
'01/11/2020 06:00', '01/11/2020 07:00', '01/11/2020 08:00',
...
'02/11/2020 15:00', '02/11/2020 16:00', '02/11/2020 17:00',
'02/11/2020 18:00', '02/11/2020 19:00', '02/11/2020 20:00',
'02/11/2020 21:00', '02/11/2020 22:00', '02/11/2020 23:00',
'03/11/2020 00:00'],
dtype='object')
【讨论】:
【参考方案2】:使用简单的for loop
很容易实现:
from datetime import datetime, date
dates = [date(2020,11,1), date(2020,11,2)]
for dt in dates:
for hour in range(0, 24):
result.append(datetime(dt.year, dt.month, dt.day, hour, 0))
print(result)
>>>
[datetime.datetime(2020, 11, 1, 0, 0),
datetime.datetime(2020, 11, 1, 1, 0),
datetime.datetime(2020, 11, 1, 2, 0),
datetime.datetime(2020, 11, 1, 3, 0),
...
...
...
datetime.datetime(2020, 11, 2, 22, 0),
datetime.datetime(2020, 11, 2, 23, 0)]
【讨论】:
以上是关于如何使用python为日期字段中的每个日期添加0到23小时作为后缀的主要内容,如果未能解决你的问题,请参考以下文章