Python 如何替换数据帧中的多个值?

Python 如何替换数据帧中的多个值?,python,pandas,dataframe,Python,Pandas,Dataframe,如何用数据帧中的映射替换多个值 我有一列要替换为以下映射 mapping apple=fruit tomato=vegetable steak=protein milk=dairy 这样我的专栏就变成了 col1 -> col1 apple fruit apple fruit tomato vegtable steak protein milk da

如何用数据帧中的映射替换多个值

我有一列要替换为以下映射

mapping
apple=fruit
tomato=vegetable
steak=protein
milk=dairy
这样我的专栏就变成了

col1       ->     col1
apple             fruit
apple             fruit
tomato            vegtable
steak             protein
milk              dairy

我如何才能最有效地做到这一点

只需使用映射创建一个字典,然后调用


我厌倦了使用代码df[col1]=df.col1.map(d),结果出现了一个错误。试图在数据帧切片的副本上设置值。尝试使用.loc[row\u indexer,col\u indexer]=valueinstead@OptimusPrime这是因为你必须先采取一个步骤。可能会对数据帧的列进行子集设置,执行类似于
df=df[['col1','col2']]
的操作。在对列进行子集设置时,请使用
df.loc
df.iloc
,这样在设置这样的列时就不会遇到问题。
>>> d = {'apple': 'fruit', 
         'tomato': 'vegetable', 
         'steak': 'protein', 
         'milk': 'dairy'}

>>> df.col1.map(d)

0        fruit
1        fruit
2    vegetable
3      protein
4        dairy
Name: col1, dtype: object