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

Pandas DataFrame匹配替换问题:将匹配词替换为另一DataFrame的基准词

解决方案

核心思路

先将df2中所有形容词的原级、比较级、最高级统一映射到对应的基准原级词,再对df1的分词列表逐词匹配替换即可。

具体实现

第一步:生成词映射字典

方法1:遍历df2行生成(易理解,适合小体量df2)

word_map = {}
for _, row in df_2.iterrows():
    base = row['word']
    word_map[row['word']] = base
    word_map[row['more']] = base
    word_map[row['most']] = base

方法2:melt转换生成(效率更高,适合大体量df2)

melted_df = df_2.melt(id_vars='word', value_vars=['word', 'more', 'most'])
word_map = dict(zip(melted_df['value'], melted_df['word']))

两种方法生成的映射字典结构一致,示例如下:
{'happy':'happy', 'happier':'happy', 'happiest':'happy', 'sad':'sad', 'sadder':'sad', 'saddest':'sad'}

第二步:逐词替换生成新列

# 定义替换函数
def transfer_sentence(word_list):
    return [word_map.get(w, w) for w in word_list]

# 应用到sentence列
df_1['new_sentence'] = df_1['sentence'].apply(transfer_sentence)

运行后输出的df_1与你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:45:03