有一個很簡單的功能從字典替換:與Python不需要的部分匹配替換
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
我打電話的熊貓數據幀列此功能。可能是一個列表或任何其他,這只是我的例子現在) 下面是數據框的例子:
**root**
P1
P2
P10
我想獲得最終是這樣的:
**root** **gen**
P1 bob
P2 jack
P10 mike
因此,我很使用這個小函數與字典
gen={"P1":"bob", "P2":"jack", "P10":"mike"}
df['gen']=df['root'].apply(lambda x : replace_all(x,gen))
這工作沒有錯誤消息,但我得到部分匹配。
**root** **gen**
P1 bob
P2 jack
P10 bob0
它把P10換成了P1,這是有道理的,但是如何防止呢?
感謝
如果'text not in dic'不起作用。應該使用'dic.get(text,text)'代替。 –