pandas - 根据列表替换子字符串
问题描述
我正在尝试用列表“名称”和“引理”替换数据框中的子字符串。只要我手动输入列表,代码就会在数据帧 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)
谢谢你的帮助!
解决方案
df.replace()
将 to_replace 中给定的值替换为值。
DataFrame 的值被动态替换为其他值。这与使用 .loc 或 .iloc 进行更新不同,后者要求您指定要使用某个值更新的位置。
简而言之,此方法不会在系列级别上进行更改,只会在值上进行更改。
这可能会达到你想要的:
sdf.regex = synonyms.name
sdf.value = synonyms.lemma
推荐阅读
- windows - 当使用 windows 标头模拟输入事件时,它会停止程序,直到手动给出中断
- python - 大尺寸输入的Tensorflow Estimator Graph Size Limitation
- reactjs - 哪个是处理 React JSX 的合适加载器?
- excel - VBA:替换 * 或 & 等字符
- html - 如何在输入字段的 vlaue 中加载 font-awesome 图标
- awk - 匹配模式后仅打印下一行的一部分
- azure - 将 azurerm_application_gateway 与 AKS 与 terraform 集成
- regex - 使用 GREP / Regex 将给定 url 扩展名的 url 中的下划线替换为破折号
- javascript - 如何检查字符串是否有星号后跟四位数字?
- python - Python 函数错误