Python 如何用一个值替换多个值
如何将数据Python 如何用一个值替换多个值,python,string,pandas,dataframe,replace,Python,String,Pandas,Dataframe,Replace,如何将数据“啤酒”、“酒精”、“饮料”、“饮料”仅替换为“饮料” df.replace([“啤酒”、“酒精”、“饮料”、“饮料”]、“饮料”) 不起作用请尝试以下方法: lst = ['Beer','Alcohol','Beverage','Drink'] pat = r"\b(?:{})\b".format('|'.join(lst)) df = df.replace(pat, 'Drink', regexp=True) 你差点就成功了。您需要将字典传递给df.replace df
“啤酒”、“酒精”、“饮料”、“饮料”
仅替换为“饮料”
df.replace([“啤酒”、“酒精”、“饮料”、“饮料”]、“饮料”)
不起作用请尝试以下方法:
lst = ['Beer','Alcohol','Beverage','Drink']
pat = r"\b(?:{})\b".format('|'.join(lst))
df = df.replace(pat, 'Drink', regexp=True)
你差点就成功了。您需要将字典传递给df.replace
df
Col1
0 Beer
1 Alcohol
2 Beverage
3 Drink
这适用于精确匹配和替换。对于部分匹配和子字符串匹配,请使用
df.replace(
dict.fromkeys(['Beer','Alcohol','Beverage','Drink'], 'Drink'),
regex=True
)
这不是一个就地操作,所以不要忘记将结果重新分配。看起来与MaxU的解决方案不同:)
先前的答案略有变化: 以下代码替换特定列的值
df[['Col1']]=df[['Col1']]替换(dict.fromkeys(['Beer'、'Alcohol'、'Beverage'、'Drink']、'Drink']、'Drink'))
在Python的最新迭代中,您最初使用的方法似乎是有效的
df.replace(['Beer','Alcohol','Beverage','Drink'],'Drink', inplace=True)
应该有用Ha!我本来打算
df.replace({k:'Drink'代表k在['Beer','alcohold','Beverage','Drink','Drink']})
但是,相反,我学到了dict.fromkeys
不会将inplace=True
传递给df.replace,如果需要的话,让它成为一个就地操作?@2load它会,但我不推荐它:不错的一个,只是不知道为什么你的和我的不同,但可以得到相同的结果…对不起,我没有放弃与字符串的工作…你能为将来的研究参考一些链接如果你的问题得到了回答,请奖励那些帮助你的人的努力。接受最有用的答案。你也可以投票表决所有其他有用的答案。请养成习惯,这有助于社区。此代码现在在熊猫身上确实有效,请参见上的示例3
df.replace({'|'.join(['Beer','Alcohol','Beverage','Drink']):'Drink'},regex=True)
df.replace(['Beer','Alcohol','Beverage','Drink'],'Drink', inplace=True)