擅长:python、mysql、java
<blockquote>
<h2>How to get the last N rows of a pandas DataFrame?</h2>
</blockquote>
<p>如果是按位置切片,<code>__getitem__</code>(即用<code>[]</code>切片)工作得很好,是我为这个问题找到的最简洁的解决方案。</p>
<pre><code>pd.__version__
# '0.24.2'
df = pd.DataFrame({'A': list('aaabbbbc'), 'B': np.arange(1, 9)})
df
A B
0 a 1
1 a 2
2 a 3
3 b 4
4 b 5
5 b 6
6 b 7
7 c 8
</code></pre>
<p/>
<pre><code>df[-3:]
A B
5 b 6
6 b 7
7 c 8
</code></pre>
<p>这与调用<code>df.iloc[-3:]</code>相同,例如(<code>iloc</code>内部委托给<code>__getitem__</code>)。</p>
<hr/>
<p>另外,如果要查找每个组的最后N行,请使用<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html" rel="noreferrer">^{<cd6>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.tail.html" rel="noreferrer">^{<cd7>}</a>:</p>
<pre><code>df.groupby('A').tail(2)
A B
1 a 2
2 a 3
5 b 6
6 b 7
7 c 8
</code></pre>