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

Pandas按其他列条件提取单列数据生成新列报错求助

报错原因

  • pandas 中对 Series 做布尔逻辑运算时,不能使用 Python 原生的 and/or 关键字,必须改用位运算符 &(与)、|(或)
  • 位运算符优先级高于比较运算符,每个独立的布尔判断条件必须用小括号包裹,否则会先执行位运算导致逻辑错误,触发ambiguous报错
  • 你原有写法仅会给满足条件的行赋值,不满足条件的行最终会得到NaN,不是你需要的0

可行实现方案

使用numpy.where实现按条件赋值的逻辑,符合你给出的规则,完整代码如下:

import pandas as pd
import numpy as np

# 请先确认你DataFrame的列名和下方代码保持一致,若列名带空格请对应修改
CMM['0 to 30'] = np.where((CMM['Age'] > 0) & (CMM['Age'] <= 30), CMM['Open_Balance'], 0)
CMM['30 to 60'] = np.where((CMM['Age'] > 30) & (CMM['Age'] <= 60), CMM['Open_Balance'], 0)
CMM['Negative_amount'] = np.where(CMM['Age'] < 0, CMM['Open_Balance'], 0)

运行后得到的结果和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:04