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

如何在排序后的DataFrame列中标记各值的首次出现

Pandas 实现排序后标记唯一值首次出现

问题说明

现有如下结构的DataFrame:

store
-----
LA
TX
NY
LA
CA
TX
LA
OR
ID

需求是先对store列排序,然后给每个值的首次出现标记1,重复出现的位置留空,最终得到这样的结果:

store    unique
-----    ------
CA         1
ID         1
LA         1
LA
LA
NY         1
OR         1
TX         1
TX

实现代码

直接用Pandas内置方法就能完成,步骤如下:

  1. 先构造示例DataFrame并按store列排序:
import pandas as pd
import numpy as np

# 构造目标DataFrame
df = pd.DataFrame({'store': ['LA', 'TX', 'NY', 'LA', 'CA', 'TX', 'LA', 'OR', 'ID']})

# 按store列排序并重置索引
df = df.sort_values('store').reset_index(drop=True)
  1. 生成unique标记列:
# 利用duplicated方法识别重复项,首次出现的项标记为1,重复项留空
df['unique'] = np.where(df['store'].duplicated(keep='first'), '', 1)

duplicated(keep='first')会返回布尔数组,首次出现的项对应False,重复项对应True;再通过np.where将False位置设为1,True位置设为空字符串,就能得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:55:15