【发布时间】:2020-12-22 00:36:28
【问题描述】:
我想知道社区中是否有人可以提供以下帮助:
旨在正则表达式替换熊猫数据帧中的子字符串(基于我作为参数传递的字典)。虽然 key:value 替换应该只发生,但如果 dict key 被发现为独立的子字符串(而不是单词的一部分)。通过独立子字符串,我的意思是它在空格之后开始
e.x:
mapping = {
"sweatshirt":"sweat_shirt",
"sweat shirt":"sweat_shirt",
"shirt":"shirts"
}
df = pd.DataFrame([
["men sweatshirt"]
["men sweat shirt"]
["yellow shirt"]
])
df = df.replace(mapping,regex=True)
预期结果: 运动衫中的子字符串“衬衫”不应替换为“衬衫”,因为值是另一个字符串的一部分,而不是独立值(\b)
注意:
我传递的字典相当长,所以理想情况下有一种方法可以将独立要求 (\b) 作为我传递给 df.replace(dict, regex=True)
先谢谢
【问题讨论】:
-
除了在映射中包含空格外,使用 df = df.apply(lambda x: ' '+x, axis=1).replace(mapping,regex=True).ID.str.strip( )
标签: python regex pandas dictionary