我是新的熊貓,我無法找到方法,如何使用另一個日期範圍通過切片獲取日期範圍。 例與使用整數文件分片效果很好:如何切片日期時間範圍與另一個日期時間範圍
In [47]: pd.date_range('04-25-2016 10:00', '04-25-2016 20:00', freq='min')[1:3]
Out[47]: DatetimeIndex(['2016-04-25 10:01:00', '2016-04-25 10:02:00'], dtype='datetime64[ns]', freq='T')
但使用另一date_range
切片不工作:
In [71]: work_range = pd.date_range('04-25-2016 10:00', '04-25-2016 20:00', freq='min')
In [72]: break_range = pd.date_range('04-25-2016 11:00', '04-25-2016 13:30', freq='min')
In [73]: free_time = work_range[break_range]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-73-361d67af3291> in <module>()
----> 1 free_time = work_range[break_range]
/usr/local/lib/python2.7/dist-packages/pandas/tseries/base.pyc in __getitem__(self, key)
173 attribs['freq'] = freq
174
--> 175 result = getitem(key)
176 if result.ndim > 1:
177 return result
IndexError: index -803545088 is out of bounds for axis 1 with size 601
或者我用date_range
走錯了路? 我的完整的例子:
import pandas as pd
work_range = pd.date_range('04-25-2016 10:00', '04-25-2016 20:00', freq='min')
break_ranges = list()
break_ranges.append(pd.date_range('04-25-2016 11:00', '04-25-2016 13:30', freq='min'))
break_ranges.append(pd.date_range('04-25-2016 15:00', '04-25-2016 15:30', freq='min'))
break_ranges.append(pd.date_range('04-25-2016 13:00', '04-25-2016 13:05', freq='min'))
free_ranges = list()
for range in break_ranges:
# slicing work_range here and put it into `free_ranges` list
是你想要的:'work_range [work_range.isin(break_range)]'?但它會工作,只有當所有部分(日期,時間,小時,分鐘等)匹配 – MaxU
順便說一句,我當然希望'date_rage'是一個錯字... – Alexander