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

为Pandas DataFrame添加布尔值新Series时遇KeyError错误求助

问题分析与解决

你的代码报错是因为布尔值使用方式错误:
(['Program_Start_Date']==Trimester_Start_Date)是将字符串列表['Program_Start_Date']和日期Trimester_Start_Date做比较,得到的是单一布尔值False,直接用这个值作为.loc的索引会触发KeyError——因为.loc默认按标签索引,找不到名为False的行标签,且没有配合布尔索引的规则使用。

正确写法

要生成预期的布尔列,直接对DataFrame的列和目标日期做比较即可,有两种常用方式:

方式1:直接生成布尔Series

EM['Starting'] = EM['Program_Start_Date'] == Trimester_Start_Date

方式2:使用.loc的布尔索引(适合复杂场景)

如果需要后续基于条件修改值,也可以先初始化列再赋值:

# 先全设为False
EM['Starting'] = False
# 给符合条件的行设为True
EM.loc[EM['Program_Start_Date'] == Trimester_Start_Date, 'Starting'] = True

效果验证

按照你的数据,前5行Program_Start_Date等于2022-05-30,所以这5行的Starting列会是True,其余行是False,完全符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:10:28