<p>作为<a href="https://stackoverflow.com/a/31490891/1240268">Robbie-Clarken answers</a>,由于0.14,您可以传递<a href="http://pandas.pydata.org/pandas-docs/stable/advanced.html#using-slicers" rel="noreferrer">slice in the tuple you pass to loc</a>:</p>
<pre><code>In [11]: s.loc[('b', slice(2, 10))]
Out[11]:
b 2 -0.65394
4 0.08227
dtype: float64
</code></pre>
<p>实际上,您可以为每个级别传递一个片段:</p>
<pre><code>In [12]: s.loc[(slice('a', 'b'), slice(2, 10))]
Out[12]:
a 5 0.27919
b 2 -0.65394
4 0.08227
dtype: float64
</code></pre>
<p><em>注意:切片是包含的。</em></p>
<hr/>
<h3>旧答案:</h3>
<p>您还可以使用以下方法执行此操作:</p>
<pre><code>s.ix[1:10, "b"]
</code></pre>
<p>(在单个ix/loc/iloc中执行是一个很好的实践,因为这个版本允许赋值。)</p>
<p>这个答案是在2013年初的<a href="https://github.com/pydata/pandas/pull/2922" rel="noreferrer">introduction of iloc</a>之前写的,也就是位置/整数位置-在这种情况下可能是首选。创建它的原因是为了消除整数索引pandas对象的模糊性,并且更具描述性:“我在位置上切片”。</p>
<pre><code>s["b"].iloc[1:10]
</code></pre>
<p>也就是说,我有点不同意那些文件,即ix是:</p>
<blockquote>
<p>most robust and consistent way</p>
</blockquote>
<p>不是,最一致的方式是描述你在做什么:</p>
<ul>
<li>对标签使用loc</li>
<li>使用iloc定位</li>
<li>两者都使用ix(如果真的需要的话)</li>
</ul>
<p>记住<a href="https://www.python.org/dev/peps/pep-0020/" rel="noreferrer">zen of python</a>:</p>
<blockquote>
<p>explicit is better than implicit</p>
</blockquote>