在我的数据框中,我想用一个一致的字符串替换不同的表示方式。例子:
- 将 [COM, COMMERCIAL] 替换为“商业”。
- 将 [FALSE, False, false, NO, No, N] 替换为 N 等等。
要替换的值列表和替换值来自另一个数据帧,并且会在我遍历主数据帧中的每一列时发生变化。
应该工作的理想解决方案是:
dfPA[col] = dfPA[col].replace(f'(?i){valold}', key)
where
valold = ['COM', 'COMMERCIAL']
key = 'Commercial'
这行不通。也许是因为 valold 是一个列表。所以我尝试了:
for val in valold:
dfPA[col] = dfPA[col].replace(f'(?i){val}', key)
它仍然不起作用。有什么想法吗?
注意:我不能使用dfPA[col] = dfPA[col].str.replace(valold, key, case=False, regex=False)
,因为正如这里所解释的,它也会替换子字符串。然后我看到的不是“商业”,而是“ComCom ...商业”