如何从大型数据集中获取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
相关产品推荐
相关产品推荐

