[英]How to spilt pandas series based on list of dates
我有一個帶有日期時間索引的 pandas 系列:
2020-06-09 10:20:00 1
2020-06-09 10:25:00 2
2020-06-09 10:30:00 3
2020-06-09 10:35:00 4
2020-06-09 10:40:00 5
2020-06-09 10:45:00 6
2020-06-09 10:50:00 7
2020-06-09 10:55:00 8
2020-06-09 11:00:00 9
2020-06-09 11:05:00 10
2020-06-09 11:10:00 11
2020-06-09 11:15:00 12
2020-06-09 11:20:00 13
2020-06-09 11:25:00 14
2020-06-09 11:30:00 15
2020-06-09 11:35:00 16
2020-06-09 11:40:00 17
和 dataframe 日期范圍:
start end
0 2020-06-09 10:21:00 2020-06-09 10:53:00
1 2020-06-09 10:42:00 2020-06-09 10:58:00
我想獲取所有日期范圍的值集合:
[
[2,3,4,5,6,7],
[6,7,8]
]
有沒有辦法比用這樣的日期迭代 dataframe 更快地做到這一點:
for x in df.iterrows():
series[(series.index > x.start) & (series.index < x.end)]
如果使用Series.loc
:
L = [series.loc[s:e].tolist() for s, e in df[['start','end']].to_numpy()]
它的工作方式與>=
和<=
比較相同:
L = [series[(series.index >= s) & (series.index <= e)].tolist()
for s, e in df[['start','end']].to_numpy()]
但是如果需要更高和更低的比較,則需要:
L = [series[(series.index > s) & (series.index < e)].tolist()
for s, e in df[['start','end']].to_numpy()]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.