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

如何在Pandas DataFrame单元格中去除重复内容?

问题:去除DataFrame单元格内的重复字符串内容

我有一个包含大量数据的DataFrame,需要去除每个单元格中的重复内容。例如,单元格字符串中多次出现interacción_con la plataforma,希望仅保留一个。我已尝试以下代码:

df_invertido['Eventos ultimos 100'] = df_invertido['Eventos ultimos 100'].str.split(r',\s+').map(set).str.join(", ")
解决方案

你的代码用set去重会打乱元素的原始顺序,如果需要保留内容第一次出现的顺序,可以改用以下方法:

方法1:自定义函数处理(兼容缺失值)

import pandas as pd

def remove_duplicates(text):
    if pd.isna(text):
        return text
    items = text.split(r',\s+')
    seen = set()
    unique_items = []
    for item in items:
        if item not in seen:
            seen.add(item)
            unique_items.append(item)
    return ", ".join(unique_items)

df_invertido['Eventos ultimos 100'] = df_invertido['Eventos ultimos 100'].apply(remove_duplicates)

这个方法遍历分割后的每个元素,用集合记录已出现的内容,只保留第一次出现的元素,拼接后既完成去重,又维持了原始顺序,同时能处理单元格为空的情况。

方法2:简化lambda表达式(无缺失值场景)

如果确认数据中没有缺失值,可以用更简洁的写法:

df_invertido['Eventos ultimos 100'] = df_invertido['Eventos ultimos 100'].str.split(r',\s+').apply(
    lambda x: ", ".join(list(dict.fromkeys(x)))
)

dict.fromkeys(x)会按元素出现顺序生成无重复的字典,转成列表后拼接即可实现有序去重。

内容的提问来源于stack exchange,提问作者Diego González Castellanos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:57:22