在同一DataFrame中实现不同行列乘法运算并创建新列
解决方案
首先明确核心计算:30 × 0.115 = 3.45,这是你需要用到的固定值。你的现有代码存在语法错误,且思路绕远了,下面分两种场景给出正确写法:
场景1:所有行的新列都使用3.45这个计算结果
直接给新列赋值即可:
DF['%'] = 30 * 0.115
场景2:仅给特定条件的行赋值3.45
如果是要给PRO_CHARGE等于"(1.0, 99283.0)"的行赋值,其他行可设为空值或默认值:
# 先初始化新列为空值 DF['%'] = pd.NA # 给符合条件的行赋值计算结果 DF.loc[DF['PRO_CHARGE'] == "(1.0, 99283.0)", '%'] = 30 * 0.115
原代码的问题说明
.loc取值必须用方括号[],不能用圆括号()- 条件判断里多了一个多余的右括号
),需要删除 - 无需关联
PRO_CHARGE为"(0.0, 99283.0)"的行,直接使用计算好的固定值即可
内容的提问来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

