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

如何为DataFrame添加标记列,判断某列值是否为最后出现?

给DataFrame加标记列:判断指定列值是否是最后一次出现

需求说明

有一个多列的DataFrame,要新增一列last_row_of_col_1,用来标记col_1列里的每个值是不是该值在这列的最后一次出现。

输入数据

col_1 col_2
0      1     A
1      2     B
2      1     C
3      1     D
4      3     E

期望输出

col_1 col_2  last_row_of_col_1
0      1     A              False
1      2     B               True
2      1     C              False
3      1     D               True
4      3     E               True

解决方法

方法1:用duplicated函数快速实现

pandas的duplicated函数可以识别重复行,设置keep='last'时,只会把除了最后一次出现的重复值标记为True,取反后就刚好是我们要的“是否为最后一次出现”的标记:

import pandas as pd

# 构造输入的DataFrame
df = pd.DataFrame({
    'col_1': [1, 2, 1, 1, 3],
    'col_2': ['A', 'B', 'C', 'D', 'E']
})

# 新增标记列
df['last_row_of_col_1'] = ~df.duplicated('col_1', keep='last')

方法2:分组后标记每组最后一行

按col_1分组,然后判断每行的索引是否是该组的最后一个索引:

df['last_row_of_col_1'] = df.groupby('col_1').transform(lambda x: x.index == x.index[-1])

两种方法都能得到目标结果,方法1的运行效率更高,适合处理大数据量的表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:52:24