You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从大型数据集中获取DataFrame的最后一行?附示例数据

获取DataFrame中分组后的最后一行数据

看起来你需要从包含分组数据的DataFrame里提取每个分组的最后一行,对吧?针对你给出的示例数据,我来分享两种实用的pandas实现方法:

方法1:使用groupby().tail()

tail(1)可以直接抓取每个分组的最后一行数据,代码示例如下:

import pandas as pd

# 将原始数据整理为DataFrame格式
data = [
    ['a', 4, 'q'],
    ['a', 8, 'q'],
    ['a', 9, 'q'],
    ['a', 8, 'q'],
    ['a', 3, 'q'],
    ['a', 46, 'q'],
    ['a', 45, 'q'],
    ['a', 1, 'q'],
    ['b', 9, 'w'],
    ['b', 5, 'wi'],
    ['b', 4, 'w'],
    ['b', 7, 'w'],
    ['b', 8, 'w']
]
df = pd.DataFrame(data, columns=['A', 'B', 'Col3'])

# 按A列分组,提取每个组的最后一行
result = df.groupby('A').tail(1)
print(result)

执行后输出结果:

A B Col3
7 a 1 q
12 b 8 w

这正好匹配你预期的a 1 q和b 8 w两行数据。

方法2:使用groupby().last()

另一种更简洁的方式是用last()方法,它会提取每个分组中各列的最后一个有效值,代码如下:

result = df.groupby('A').last().reset_index()
print(result)

输出结果和上面完全一致,这种方法适合不需要保留原DataFrame索引的场景。

如果你的需求是获取整个DataFrame的最后一行(而非分组),直接用df.tail(1)即可,但根据你的预期输出,显然分组提取的需求更贴合你的场景。

内容的提问来源于stack exchange,提问作者rakesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:59:08