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

如何通过筛选特定行元素从大型DataFrame生成小型DataFrame

问题描述

我有如下DataFrame:

Col1Col2Col3
A110
A220
A330
B110
B220
C440
C570

需要得到按Col1分组后每组的最后一行数据,输出如下:

Col1Col2Col3
A330
B220
C570
解决方案

可以使用Pandas的groupby结合tail(1)或last()方法实现需求:

方法1:用tail(1)直接取每组最后一行

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'Col1': ['A', 'A', 'A', 'B', 'B', 'C', 'C'],
    'Col2': [1, 2, 3, 1, 2, 4, 5],
    'Col3': [10, 20, 30, 10, 20, 40, 70]
})

# 按Col1分组,取每组最后一行并重置索引
result = df.groupby('Col1').tail(1).reset_index(drop=True)
print(result)

方法2:用last()提取每组各列最后值

# 按Col1分组,取每组各列的最后一个值并重置索引
result = df.groupby('Col1').last().reset_index()
print(result)

两种方法都能得到目标输出:tail(1)直接保留每组的最后一行完整数据;last()提取每组中每一列的最后一个非缺失值(无缺失值时结果与tail(1)完全一致)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:15:35