def _ixs(self, i, axis=<NUM_LIT:0>):
<EOL>if axis == <NUM_LIT:0>:<EOL><INDENT>if isinstance(i, slice):<EOL><INDENT>return self[i]<EOL><DEDENT>else:<EOL><INDENT>label = self.index[i]<EOL>if isinstance(label, Index):<EOL><INDENT>result = self.take(i, axis=axis)<EOL>copy = True<EOL><DEDENT>else:<EOL><INDENT>new_values = self._data.fast_xs(i)<EOL>if is_scalar(new_values):<EOL><INDENT>return new_values<EOL><DEDENT>copy = (isinstance(new_values, np.ndarray) and<EOL>new_values.base is None)<EOL>result = self._constructor_sliced(new_values,<EOL>index=self.columns,<EOL>name=self.index[i],<EOL>dtype=new_values.dtype)<EOL><DEDENT>result._set_is_copy(self, copy=copy)<EOL>return result<EOL><DEDENT><DEDENT>else:<EOL><INDENT>label = self.columns[i]<EOL>if isinstance(i, slice):<EOL><INDENT>lab_slice = slice(label[<NUM_LIT:0>], label[-<NUM_LIT:1>])<EOL>return self.loc[:, lab_slice]<EOL><DEDENT>else:<EOL><INDENT>if isinstance(label, Index):<EOL><INDENT>return self._take(i, axis=<NUM_LIT:1>)<EOL><DEDENT>index_len = len(self.index)<EOL>values = self._data.iget(i)<EOL>if index_len and not len(values):<EOL><INDENT>values = np.array([np.nan] * index_len, dtype=object)<EOL><DEDENT>result = self._box_col_values(values, label)<EOL>result._set_as_cached(label, self)<EOL>return result<EOL><DEDENT><DEDENT>
Parameters
----------
i : int, slice, or sequence of integers
axis : int

Notes
-----
If slice passed, the resulting data will be a view.