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

Python 如何从DataFrame单元格字符串中提取数字并检测重复值

解决方案

你可以通过两种方式实现单元格重复值检测,以下是可直接运行的代码实现:

方法1:ast解析结构化字符串(推荐)

完全按照列表结构解析内容,不会出现误匹配的问题:

import pandas as pd
import ast

def check_duplicate(cell):
    total_nums = []
    # 遍历单元格内两个字符串格式的列表
    for str_list in cell:
        # 将字符串转为真实的列表对象
        num_list = ast.literal_eval(str_list)
        # 把字符串类型的数字转为整数后汇总
        total_nums.extend([int(num) for num in num_list])
    # 总长度和去重后的长度不一致即存在重复
    return len(total_nums) != len(set(total_nums))

# 应用到你的DataFrame对应列,生成标记列
# 替换下方的`fight_num_col`为你存储该内容的列名
df['has_duplicate'] = df['fight_num_col'].apply(check_duplicate)

标记列has_duplicate取值为True即代表该单元格存在重复数字,不符合6个数字全唯一的要求。

方法2:正则匹配提取数字(写法更简洁)

如果你的单元格内不存在FightNum以外的其他数字,可以用更简单的正则提取方式:

import re

def check_duplicate(cell):
    # 提取单元格内容中所有数字串,转为整数
    nums = [int(num) for num in re.findall(r'\d+', str(cell))]
    return len(nums) != len(set(nums))

# 同样应用到对应列即可
df['has_duplicate'] = df['fight_num_col'].apply(check_duplicate)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:48:01