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

如何在Python中按字段条件删除DataFrame行,保留有序列分组首行

在Pandas DataFrame中保留有序分组的首行

给定一个已按首列排序的列表:

a = [[1,'a'],[1,'c'],[1,'b'],[2,'c'],[2,'b'],[2,'a'],[3,'d']]

我们需要将其转换为仅保留每个首列值分组首行的结果:

a = [[1,'a'],[2,'c'],[3,'d']]

实现步骤

  1. 导入Pandas并转换为DataFrame
import pandas as pd

# 将列表转为DataFrame,指定列名
df = pd.DataFrame(a, columns=['col1', 'col2'])
  1. 保留每个分组的首行
    因为数据已经按col1有序排列,直接使用drop_duplicates方法,指定按col1去重并保留第一个出现的行:
# 去重并保留每个col1分组的首行
result_df = df.drop_duplicates(subset='col1', keep='first')
  1. 转换回列表格式(可选)
    如果需要将结果转回列表:
result_list = result_df.values.tolist()
print(result_list)
# 输出: [[1, 'a'], [2, 'c'], [3, 'd']]

另一种实现方式:使用groupby

也可以通过groupby方法取每个分组的第一行,效果一致:

result_df = df.groupby('col1', as_index=False).first()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04