首页 > 解决方案 > 用另一个字符串替换多行

问题描述

我有一个示例数据框

id     food_item
1      Apple
2      Beet root
3      Pizza
5      Red velvet

我需要用“快餐”apple替换fruit,Beetroot和。vegetablepizza

df['food_item'] = df['food_item'].str.replace('apple','fruit')
df['food_item'] = df['food_item'].str.replace('beetroot','vegetable')
df['food_item'] = df['food_item'].str.replace('pizza','fast food')
df['food_item'] = df['food_item'].str.replace('red velvet','dessert')

blue velvet但是有没有更简化/替代的方法,而不是使用正则表达式为此编写四行,所以dessert尽管它当前没有添加到 df.


标签: pythonpandasdataframe

解决方案


你当然可以!您应该查看pandas replace而不是 python 的内置:

df['food_item'] = df['food_item'].replace({'apple':'fruit','beetroot':'vegetable','pizza':'fast food','red velvet':'dessert'})

此外,如果应将多个字符串替换为一个公共字符串,您可以尝试:

df['food_item'] = df['food_item'].replace(['apple','banana','orange','grapes'],'fruit')

鉴于您进行编辑,您可以创建一个替换字典以将其传递给 pandas 的替换。该函数的一件有用的事情是,如果找不到该值,它将只是简单地跳过它并且不会产生错误。因此,您可以将蓝色天鹅绒添加到您的字典或替换中而不会产生任何后果,这样当蓝色天鹅绒是数据的一部分时,它会被替换,否则会被跳过


推荐阅读