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

使用.loc过滤后修改Pandas Dataframe元素得到布尔结果的问题

问题错误原因

你代码的核心错误是把赋值操作符写成了比较操作符:
你在最后一行使用了> 1000,这是判断Impressions列的取值是否大于1000的比较运算,自然只会返回整列布尔值结果,不会修改原数据集的任何值。

修正后的代码

把最后一行的>替换为赋值符号=即可实现需求:

df.loc[
    (((df['Record Type'].str.lower() == 'keyword')
    | (df['Record Type'].str.lower() == 'product targeting')) &
    ((df['Campaign Status'].str.lower() == 'enabled')
    & (df['Ad Group Status'].str.lower() == 'enabled')
    & (df['Status'].str.lower() == 'enabled'))
    & df['Orders'] > 0
    & df['Campaign'].str.contains('b0',case=False))
    ,"Impressions"] = 1000
可选优化建议

如果你的数据集里存在空值,为了避免字符串操作返回NaN导致筛选逻辑出错,可以给所有字符串方法补充na=False参数,示例如下:

  • df['Record Type'].str.lower() == 'keyword' 改为 df['Record Type'].str.lower(na=False) == 'keyword'
  • df['Campaign'].str.contains('b0',case=False) 改为 df['Campaign'].str.contains('b0',case=False, na=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:27:05