我是Python的新手(来自Matlab)并且在执行一项简单的任务时遇到了一些麻烦:
如何创建从日期X到日期Y的常规时间序列,间隔为Z单位?
E.g。 2013年1月1日至2013年1月31日每10分钟
在Matlab中:
t = datenum(2013,1,1):datenum(0,0,0,0,10,0):datenum(2013,12,31);
答案 0 :(得分:0)
如果您可以使用 pandas ,请使用 pd.date_range
<强>实施例强>
import pandas as pd
d = pd.date_range(start='2013/1/1', end='2013/12/31', freq="10min")
答案 1 :(得分:0)
此函数将产生任何间隔,类似于IDEA-171093,但也适用于非整数:
def make_series(begin, end, interval):
x = begin
while x < end:
yield x
x = x + interval
然后你可以这样做:
>>> import datetime
>>> date_x = datetime.datetime(2013,1,1)
>>> date_y = datetime.datetime(2013,12,31)
>>> step = datetime.timedelta(days=50)
>>>
>>> list(make_series(date_x, date_y, step))
[datetime.datetime(2013, 1, 1, 0, 0), datetime.datetime(2013, 2, 20, 0, 0), datetime.datetime(2013, 4, 11, 0, 0), datetime.datetime(2013, 5, 31, 0, 0), datetime
.datetime(2013, 7, 20, 0, 0), datetime.datetime(2013, 9, 8, 0, 0), datetime.datetime(2013, 10, 28, 0, 0), datetime.datetime(2013, 12, 17, 0, 0)]
答案 2 :(得分:0)
我选择了一个随机的日期范围,但这是你如何能够完成它:
a = pd.Series({'A': 1, 'B': 2, 'C': 3}, pd.date_range('2018-2-6', '2018-3-4', freq='10Min'))
print(a)
您可以在创建DataFrame时添加日期范围。您在date_range()方法中输入的第一个参数是开始日期,第二个参数自动是结束日期。您在此示例中输入的最后一个参数是频率参数,您可以将其设置为10分钟。您可以将其设置为&#39; H&#39; 1小时,或者到&#39; M&#39;也是1分钟的间隔。另一种值得注意的方法是asfreq()方法,它允许您编辑频率或存储具有不同频率的另一个数据帧的副本。这是一个例子:
copy = a.asfreq('45Min', method='pad')
print(copy)
如果你想学习多个频率,那很重要。您可以重复复制数据帧,以查看不同的时间间隔。希望这个答案有所帮助。