Python—使用freq计算两个日期之间的日期/时间迭代次数
我试图找出如何使用特定频率(1D 3D 3H 15T)计算两个日期之间的日期时间迭代次数 例如:Python—使用freq计算两个日期之间的日期/时间迭代次数,python,python-datetime,Python,Python Datetime,我试图找出如何使用特定频率(1D 3D 3H 15T)计算两个日期之间的日期时间迭代次数 例如: freq = '3H' start = datetime.datetime(2018, 8, 14, 9, 0, 0) end= datetime.datetime(2018, 8, 15) total = func(start, end, freq) 如果freq='3H'总数将是5 如果freq='30T'总数将为30 func会是什么样子 编辑 我把我最初的问题留在那里,并添加我最初没有添加
freq = '3H'
start = datetime.datetime(2018, 8, 14, 9, 0, 0)
end= datetime.datetime(2018, 8, 15)
total = func(start, end, freq)
如果freq='3H'
总数将是5
如果freq='30T'
总数将为30
func会是什么样子
编辑
我把我最初的问题留在那里,并添加我最初没有添加的细节,以使事情尽可能简单
在我正在处理的代码中,我有一个带有DateTimeIndex的Pandas数据帧。我需要计算自特定时间(如上)以来的行数。我曾想过从那时开始创建一个数据帧,填补空白,然后像那样计算行数,但现在这似乎很愚蠢
我最终使用的函数(解析时)是:
使用datetime
库中的模块,从那里基本上与比较数字相同
from datetime import timedelta
freq = timedelta(hours=3)
def periods(frequency, start, end):
count = 0
while start < end:
start += frequency
count += 1
return count
p = periods(freq, start, end)
print(p)
>> 5
从日期时间导入时间增量
频率=时间增量(小时=3)
def周期(频率、开始、结束):
计数=0
开始<结束时:
开始+=频率
计数+=1
返回计数
p=周期(频率、开始、结束)
印刷品(p)
>> 5
我考虑了timedelta,但我需要能够从使用小时/天/分钟/秒动态切换。我可以解析传入的字符串,但我希望有一种更优雅的方法来解析。
candlesticks['n'] = candlesticks.apply(lambda x: periods(x, candlesticks.index.freqstr), axis=1)
from datetime import timedelta
freq = timedelta(hours=3)
def periods(frequency, start, end):
count = 0
while start < end:
start += frequency
count += 1
return count
p = periods(freq, start, end)
print(p)
>> 5