如何解决在熊猫中创建日期范围对
我有两个日期时间,我想在它们之间生成 4 小时的固定间隔(不包括最后一个间隔,如果前一个时间戳和 end
之间的时间少于 4 小时,则可以少于 4 小时) .
我坚持使用 pandas.date_range
生成间隔,它只返回 end
时间戳。例如:
import pandas
from datetime import datetime
start = datetime(2021,4,2,20,40,0)
end = datetime(2021,18,0)
dates = pandas.date_range(start=end,end=end,freq='4H')
dates
DatetimeIndex(['2021-04-04 18:20:00'],dtype='datetime64[ns]',freq='4H')
目的是生成日期时间对列表,例如:
[['2021-04-02 20:40:00','2021-04-03 00:40:00'],['2021-04-03 00:40:00','2021-04-03 04:40:00']...['2021-04-04 16:40:00','2021-04-04 18:20:00']] #last pair can be cut off by `end`.
我在语法上做错了什么,如何使用 pandas.date_range
生成一对间隔列表?
解决方法
有一个拼写错误 (start=end
),导致 dates
只有 1 个值。
但是修正错字只会给你一个固定的日期范围。如果您想要这些嵌套对,您可以将 dates
移动 4 小时和 zip()
:
dates = pandas.date_range(start=start,end=end,freq='4H')
shift = dates + pandas.Timedelta(hours=4)
pairs = list(zip(dates,shift))
# [(Timestamp('2021-04-02 20:40:00',freq='4H'),# Timestamp('2021-04-03 00:40:00',freq='4H')),# (Timestamp('2021-04-03 00:40:00',# Timestamp('2021-04-03 04:40:00',# (Timestamp('2021-04-03 04:40:00',# Timestamp('2021-04-03 08:40:00',# ...
或者对于列表列表而不是元组列表:
pairs = list(map(list,zip(dates,shift)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。