Pandas:如何基于列中分类值创建对应映射的新列
问题描述
现有一个Pandas DataFrame,其中包含Category列,该列仅有Apple、Banana、Kiwi三个不同取值,具体数据如下:
Category Apple Apple Apple Banana Kiwi Banana Banana Banana
希望新增Color列,实现水果与对应颜色的映射,映射关系如下:
Category Color Apple Red Banana yellow Kiwi green
请问如何实现创建该Color列的需求?
解决方案
通过创建映射字典并结合Pandas的map()方法可以快速实现需求,具体操作如下:
- 首先定义水果与颜色的映射字典:
color_mapping = { 'Apple': 'Red', 'Banana': 'yellow', 'Kiwi': 'green' }
- 然后对
Category列调用map()方法,生成新的Color列:
import pandas as pd # 假设你的DataFrame变量名为df df['Color'] = df['Category'].map(color_mapping)
执行上述代码后,你的DataFrame会自动新增Color列,每个水果条目都会对应到正确的颜色值。
如果需要处理Category列中可能出现的映射字典外的未知值,可以追加fillna()方法设置默认值:
df['Color'] = df['Category'].map(color_mapping).fillna('Unknown')
内容的提问来源于stack exchange,提问作者user16971617
相关产品推荐
相关产品推荐

