首页 > 解决方案 > 根据列表替换子字符串

问题描述

我正在尝试用列表“名称”和“引理”替换数据框中的子字符串。只要我手动输入列表,代码就会在数据帧 m 中传递结果。

name=['Charge','charge','Prepaid']
lemma=['Hallo','hallo','Hi']

m=sdf.replace(regex= name, value =lemma)

一旦我从 excel 文件中读取两个列表,我的代码就不再替换子字符串了。我需要使用一个 excel 文件,因为列表在一个非常大的表中。

sdf= pd.read_excel('training_data.xlsx')
synonyms= pd.read_excel('synonyms.xlsx')

lemma=synonyms['lemma'].tolist() 
name=synonyms['name'].tolist()

m=sdf.replace(regex= name, value =lemma)

谢谢你的帮助!

标签: pandasreplace

解决方案


df.replace()

将 to_replace 中给定的值替换为值。

DataFrame 的值被动态替换为其他值。这与使用 .loc 或 .iloc 进行更新不同,后者要求您指定要使用某个值更新的位置。

简而言之,此方法不会在系列级别上进行更改,只会在值上进行更改。

这可能会达到你想要的:

sdf.regex = synonyms.name
sdf.value = synonyms.lemma

推荐阅读