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

批量处理含5万多词对的DataFrame,移除行内重复高频词需求

自动化移除DataFrame中列内重复出现的词汇

解决方案代码

import pandas as pd

# 读取你的数据(替换成实际读取方式,比如pd.read_csv/pd.read_excel)
# df = pd.read_csv('your_data.csv')

# 示例数据(仅作演示)
data = {
    'en': [
        'Tuberculosis of heart',
        'Tuberculosis of myocardium',
        'Tuberculosis of endocardium',
        'Tuberculosis of oesophagus',
        'Zoster keratoconjunctivitis',
        'Zoster blepharitis',
        'Zoster iritis'
    ],
    'ko': [
        '심장의 결핵',
        '심근의 결핵',
        '심내막의 결핵',
        '식도의 결핵',
        '대상포진 각막결막염',
        '대상포진 안검염',
        '대상포진 홍채염'
    ]
}
df = pd.DataFrame(data)

def remove_repeated_terms(column):
    # 拆分所有行的词汇并展平,统计每个词汇的出现频率
    all_terms = column.str.split().explode()
    term_frequency = all_terms.value_counts()
    # 筛选出列内出现多次的词汇
    repeated_terms = set(term_frequency[term_frequency > 1].index)
    # 对每行过滤重复词汇后拼接成字符串
    return column.apply(lambda row: ' '.join([term for term in row.split() if term not in repeated_terms]))

# 处理英文和韩文列
df['en'] = remove_repeated_terms(df['en'])
df['ko'] = remove_repeated_terms(df['ko'])

# 输出结果或保存到文件
print(df)
# df.to_csv('processed_data.csv', index=False)

代码说明

  1. 词汇拆分与频率统计:通过str.split()拆分每行文本为词汇列表,explode()将所有词汇展平成一维序列,再用value_counts()统计每个词汇在整列中的出现次数。
  2. 重复词汇过滤:提取出现次数大于1的词汇集合,对每行文本过滤掉这些重复词汇,仅保留仅出现一次的词汇并拼接成新字符串。
  3. 效率适配:Pandas的矢量化操作和apply()方法针对5万行数据完全高效,无需手动处理,几秒内即可完成。

边界情况提示

如果某行所有词汇均为列内重复项,过滤后会得到空字符串。若需要处理这种情况,可以在apply()的lambda函数中添加判断:

lambda row: ' '.join([term for term in row.split() if term not in repeated_terms]) or row

这样会在过滤结果为空时保留原行内容。

内容的提问来源于stack exchange,提问作者이승우

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:35:36