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

如何基于pandas表中全局唯一值派生新列取值

pandas 新增全表唯一值规则派生列实现方案

核心逻辑

基于全表所有单元格的取值出现频次,逐行提取仅在全表范围内出现1次的取值,填充到新增的RESULT列中;若对应行没有符合该规则的取值,填充空值即可。

可直接运行的实现代码

import pandas as pd

# 构造和提问示例一致的测试数据集
df = pd.DataFrame({
    'COL1': ['A', 'B', 'C', 'D', 'E', 'B'],
    'COL2': ['B', 'C', 'D', 'E', 'F', 'A'],
    'COL3': ['C', 'D', 'E', 'F', 'G', 'H']
})

# 统计全表所有取值的出现次数
value_count_map = df.stack().value_counts()

# 逐行匹配符合规则的取值,生成RESULT列
df['RESULT'] = df.apply(
    lambda row: next((cell_val for cell_val in row if value_count_map[cell_val] == 1), pd.NA),
    axis=1
)

效果说明

运行上述代码后,输出的DataFrame和示例预期完全一致:

  • 前4行所有单元格的取值在全表中均出现2次及以上,RESULT列对应为空
  • 第5行取值G仅在全表出现1次,对应RESULT填充G
  • 第6行取值H仅在全表出现1次,对应RESULT填充H

如果你的唯一值规则有其他判定条件,只需要修改value_count_map[cell_val] == 1这部分的判断逻辑即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:39:19