我有一个像这样的时间戳序列:from datetime import datetimedts = [datetime(2018, 12, 21, 10), datetime(2018, 12, 21, 11), datetime(2018, 12, 21, 12)]它们可能有也可能没有间隙,但每个时间戳代表 1 小时的时间段。我想重新取样这代表30个细微时间戳序列30个分钟的周期,像这样: [datetime(2018, 12, 21, 10, 0), datetime(2018, 12, 21, 10, 30), datetime(2018, 12, 21, 11, 0), datetime(2018, 12, 21, 11, 30), datetime(2018, 12, 21, 12, 0), datetime(2018, 12, 21, 12, 30)]。我能得到的最接近的是(ab)使用熊猫:import pandas as pds = pd.Series(dts, index=pd.DatetimeIndex(dts))s.asfreq('30T').index这让我得到以下DatetimeIndex(['2018-12-21 10:00:00', '2018-12-21 10:30:00', '2018-12-21 11:00:00', '2018-12-21 11:30:00', '2018-12-21 12:00:00'], dtype='datetime64[ns]', freq='30T')请注意,它没有“2018-12-21 12:30:00”。
2 回答

森林海
TA贡献2011条经验 获得超2个赞
你不需要pandas. 您可以使用timedelta向datetime对象添加时间间隔。
您可以使用map该区间适用于每个元素dts,然后zip并list创建一个新的interleavened列表。
from datetime import datetime
from datetime import timedelta
dts = [datetime(2018, 12, 21, 10), datetime(2018, 12, 21, 11), datetime(2018, 12, 21, 12)]
new_dts = list(zip(dts, map(lambda x: x + timedelta(minutes=30), dts)))
添加回答
举报
0/150
提交
取消