我有一個像這樣的時間戳序列: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
提交
取消