diff --git a/dios/dios.py b/dios/dios.py
index ba45f247eacb3714ea79f478995e5b76d9f90359..a748a5673e8ed6d542936188de2294bd32ee570e 100644
--- a/dios/dios.py
+++ b/dios/dios.py
@@ -8,7 +8,8 @@ from collections import OrderedDict
 from pandas.core.dtypes.common import (
     is_list_like,
     is_iterator,
-    is_number
+    is_number,
+    is_integer,
 )
 from pandas.core.indexing import need_slice
 
@@ -71,9 +72,9 @@ class _LocIndexer:
             stop = keys.index(rslice.stop) if rslice.stop is not None else None
         except ValueError:
             raise KeyError("The slice start label or the slice stop label is not present in the columns.")
-        if not is_number(rslice):
-            raise TypeError("The step parameter of the slice must be numeric.")
-        return keys[slice(start, stop, rslice.step)]
+        if not is_integer(rslice) and rslice > 0:
+            raise TypeError("The step parameter of the slice must be positive integer.")
+        return keys[slice(start, stop + 1, rslice.step)]
 
 
 class DictOfSeries: