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

Pandas如何按amount列连续重复值分组并保留每组首行?

按连续重复值分组保留每组首行

原始DataFrame

创建数据的代码:

import pandas as pd

df = pd.DataFrame(
    [['1001',34.3],['1009',34.3],['1003',776],['1015',18.95],['1023',18.95],['1007',18.95],['1009',18.95],['1037',321.2],['1001',344.2],['1016',3.2],['1017',3.2],['1027',344.2]],
    columns=['id','amount']
)

原始数据展示:

id      amount  
0   1001    34.30  
1   1009    34.30  
2   1003    776.00  
3   1015    18.95   
4   1023    18.95
5   1007    18.95
6   1009    18.95
7   1037    321.20
8   1001    344.20 
9   1016    3.20
10  1017    3.20
11  1027    344.20 

需求

生成df_new,按amount列的连续重复值分组,仅保留每组的第一行数据。

解决方案

通过对比当前行与前一行的amount值,筛选出首次出现连续重复值的行:

# 生成筛选掩码:第一行保留,后续行仅当与上一行amount不同时保留
mask = df['amount'].ne(df['amount'].shift())
df_new = df[mask]

最终结果

id      amount  
0   1001    34.30  
2   1003    776.00  
3   1015    18.95   
7   1037    321.20
8   1001    344.20 
9   1016    3.20
11  1027    344.20 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:20:48