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

Python Pandas:匹配字典键替换DataFrame列值的循环排障

解决DataFrame中按字典精确匹配替换列值的问题

问题根源

你之前的循环错误大概率是因为用了包含匹配(比如'iPhone 14' in phone_name)而非精确匹配,导致所有包含"iPhone 14"的型号(如"iPhone 14 Pro")都误匹配到"iPhone 14"对应的电池值。

最优解决方案(无需循环,高效准确)

假设你的字典定义如下:

iphone_dict = {
    "iPhone 14": 3279,
    "iPhone 14 Pro": 3200,
    "iPhone 14 Pro Max": 4323
}

方法1:使用map()(推荐)

仅替换匹配到字典键的行,未匹配的保留原Battery值:

df['Battery'] = df['Phone Name'].map(iphone_dict).fillna(df['Battery'])

方法2:使用replace()

直接替换匹配到的型号对应的电池值:

df['Battery'] = df.replace({'Phone Name': iphone_dict})['Battery']

若坚持使用循环(不推荐,效率低)

需确保精确匹配字典键,同时使用df.at修改原DataFrame:

for idx, row in df.iterrows():
    phone_name = row['Phone Name']
    if phone_name in iphone_dict:
        df.at[idx, 'Battery'] = iphone_dict[phone_name]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:03:19