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

对比DataFrame列值与字典值筛选行时出现KeyError如何解决

错误原因及解决方案

报错直接原因

你写的df.loc['Responsible Market']用法不符合pandas规范:
loc接收的第一个参数默认是行索引匹配条件,你传入列名'Responsible Market'时,pandas会尝试在行索引中查找该值,找不到就会抛出KeyError。如果要获取该列的整列值,正确写法是df['Responsible Market']或者df.loc[:, 'Responsible Market']。

隐藏的逻辑错误

就算你修正了取列的写法,原有逻辑也无法运行:launch_dates.get()仅支持传入单个国家名称作为入参,你传入一整列Series对象,无法批量返回每个国家对应的发布日期。

正确实现代码

你可以用map()方法批量映射国家对应的发布日期,再做日期比较即可,示例如下:

import pandas as pd

# 先将日期列统一转成datetime格式,避免字符串比较出现逻辑错误
df['Date created'] = pd.to_datetime(df['Date created'])
# 映射得到每行对应市场的发布日期,直接筛选符合条件的行
df = df[df['Date created'] >= df['Responsible Market'].map(launch_dates)]

如果你的实际日期列名是Case created on - Date,替换上述代码中的列名即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:36:02