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

Pandas DataFrame条件赋值问题:非指定州佣金率设置求助

问题解决

你的第二行代码逻辑错误:用|(逻辑或)会导致所有行都被匹配——任何州必然满足「不等于CA」「不等于NV」「不等于HI」中的至少一个(比如CA不等于NV),所以所有行都会被重新赋值为0.035,直接覆盖了第一行的结果。

修正方案1:修正逻辑运算符

把第二行的|换成&(逻辑与),表示同时满足「不是CA」「不是NV」「不是HI」:

import pandas as pd
import numpy as np

repone.loc[(repone['State'] == 'CA') | (repone['State'] == 'NV') | (repone['State'] == 'HI'), 'Commission %'] = .07
repone.loc[(repone['State'] != 'CA') & (repone['State'] != 'NV') & (repone['State'] != 'HI'), 'Commission %'] = .035

修正方案2:用isin简化代码

更简洁易读的写法是用isin判断是否在指定州列表里,再通过~取反匹配其他州:

import pandas as pd
import numpy as np

target_states = ['CA', 'NV', 'HI']
repone.loc[repone['State'].isin(target_states), 'Commission %'] = 0.07
repone.loc[~repone['State'].isin(target_states), 'Commission %'] = 0.035

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:04:52