Python Pandas,有没有办法将 date_range 分成大小相等的间隔?

Python Pandas, is there a way to split a date_range into equally sized intervals?

我目前正在 Python(Pandas 模块)中从事一个项目。我想要做的是将 date_range 分成大小相等的间隔。

import pandas as pd
startdate='2014-08-08'
enddate='2014-08-11'
n=3
pd.date_range(start=startdate,end=enddate)

我想要的是一些方法 return 中间日期作为字符串,例如:

startdate='2014-08-08'
intermediate_1='2014-08-09'
intermediate_2='2014-08-10'
enddate='2014-08-11'

这是一个有几天的例子,但我希望能够在几个小时或几分钟内做同样的事情。在当前的 Pandas 模块中有没有办法做到这一点?任何帮助将不胜感激。

此致, 亚历克斯

您可以使用 np.split 拆分您的数组,此 returns 是一个 datetimeindex 值数组,因此我们必须使用 [0] 访问值元素,然后我们可以调用属性date() 并转换为 str:

In [238]:

startdate='2014-08-08'
enddate='2014-08-11'
n=3
d = pd.date_range(start=startdate,end=enddate)
d
Out[238]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-08-08, ..., 2014-08-11]
Length: 4, Freq: D, Timezone: None
In [249]:
# split to produce n-1 blocks
splits = np.split(d, n-1)
# show the contents
for t in splits:
    print(t)
# assign each element, then access the value using [0] and access the date attribute and cast to str
intermediate_1 = str(splits[0][0].date())
intermediate_2 = str(splits[-1][0].date())
# show intermediate_1 which shows it is a str representation of the date
intermediate_1
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-08-08, 2014-08-09]
Length: 2, Freq: D, Timezone: None
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-08-10, 2014-08-11]
Length: 2, Freq: D, Timezone: None
Out[249]:
'2014-08-08'