亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中重新采樣時間戳序列

在python中重新采樣時間戳序列

飲歌長嘯 2021-09-23 09:43:28
我有一個像這樣的時間戳序列: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)))


查看完整回答
反對 回復 2021-09-23
  • 2 回答
  • 0 關注
  • 348 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號