You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据Fruit列的值填充Pandas DataFrame的Color列?

如何根据Pandas DataFrame的某列值填充另一列?

你的初始DataFrame代码如下:

import pandas as pd

d = {'Fruit': ['Apple', 'Orange', 'Pear', 'Peach'], 'Color': ['','','','']}
df = pd.DataFrame(data=d)

要根据Fruit列的值填充Color列,不建议用普通if语句逐行判断(Pandas更适配向量化操作,循环判断在数据量大时效率极低),推荐以下几种高效方案:

方法1:字典映射 + map()函数

这是最常用的方案,先定义水果与颜色的对应字典,再通过map()批量完成映射:

# 自定义水果-颜色映射规则,可按需修改
fruit_color_map = {
    'Apple': 'Red',
    'Orange': 'Orange',
    'Pear': 'Green',
    'Peach': 'Pink'
}

# 批量填充Color列
df['Color'] = df['Fruit'].map(fruit_color_map)

如果存在字典未覆盖的水果,map()会返回NaN,可通过fillna()统一处理:

df['Color'] = df['Fruit'].map(fruit_color_map).fillna('Unknown')

方法2:使用replace()函数

replace()也可基于字典直接替换列值,效果与map()一致:

df['Color'] = df['Fruit'].replace(fruit_color_map)

方法3:条件索引loc(适合少量规则)

如果映射规则不多,也可以用loc逐个设置条件:

df.loc[df['Fruit'] == 'Apple', 'Color'] = 'Red'
df.loc[df['Fruit'] == 'Orange', 'Color'] = 'Orange'
df.loc[df['Fruit'] == 'Pear', 'Color'] = 'Green'
df.loc[df['Fruit'] == 'Peach', 'Color'] = 'Pink'

执行任意方法后,最终的DataFrame会变为:

FruitColor
AppleRed
OrangeOrange
PearGreen
PeachPink

内容的提问来源于stack exchange,提问作者Aragorn64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:50:33