2017-02-07 10 views
1

分を使用してパンダデータフレームをスライスし、エラーメッセージ "pandas.tslib.OutOfBoundsDatetime"を取得しようとしています。パンダ。ミニバースライシング。エラー "pandas.tslib.OutOfBoundsDatetime"

私の理解では、私は、フォーマットXとパンダのデータをスライスできるということである[ 'HH:MM': 'HH:MM']が、間違っているものを理解していない:

min_index 
Out[237]: 
0 04:00 
1 04:01 
2 04:04 
3 04:05 
4 04:07 
    dtype: object 

df=pd.DataFrame(np.arange(5)) 

x=df.set_index(pd.to_datetime(min_index)) 

x 
Out[241]: 
        0 
TimeBarStart   
2017-02-07 04:00:00 0 
2017-02-07 04:01:00 1 
2017-02-07 04:04:00 2 
2017-02-07 04:05:00 3 
2017-02-07 04:07:00 4 

x['04:01' : '04:05'] 
Traceback (most recent call last): 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code 
    exec(code_obj, self.user_global_ns, self.user_ns) 
    File "<ipython-input-242-e650c256178d>", line 1, in <module> 
    x['04:01' : '04:05'] 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\core\frame.py", line 1985, in __getitem__ 
    indexer = convert_to_index_sliceable(self, key) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1758, in convert_to_index_sliceable 
    return idx._convert_slice_indexer(key, kind='getitem') 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 1079, in _convert_slice_indexer 
    indexer = self.slice_indexer(start, stop, step, kind=kind) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\tseries\index.py", line 1511, in slice_indexer 
    return Index.slice_indexer(self, start, end, step, kind=kind) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 2785, in slice_indexer 
    kind=kind) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 2964, in slice_locs 
    start_slice = self.get_slice_bound(start, 'left', kind) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 2903, in get_slice_bound 
    label = self._maybe_cast_slice_bound(label, side, kind) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\tseries\index.py", line 1472, in _maybe_cast_slice_bound 
    bounds = self._parsed_string_to_bounds(reso, parsed) 
    File "C:\Users\Chris\Anaconda3\lib\site-packages\pandas\tseries\index.py", line 1297, in _parsed_string_to_bounds 
    return (Timestamp(st, tz=self.tz), 
    File "pandas\tslib.pyx", line 295, in pandas.tslib.Timestamp.__new__ (pandas\tslib.c:9203) 
    File "pandas\tslib.pyx", line 1334, in pandas.tslib.convert_to_tsobject (pandas\tslib.c:25690) 
    File "pandas\tslib.pyx", line 1562, in pandas.tslib._check_dts_bounds (pandas\tslib.c:29245) 
pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 04:01:00 

答えて

0

between_time()メソッドを使用してみてください:

In [75]: x.between_time('04:01', '04:05') 
Out[75]: 
        0 
1 
2017-02-07 04:01:00 1 
2017-02-07 04:04:00 2 
2017-02-07 04:05:00 3