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

如何根据条件修改Pandas列值?代码为何将整行设为4.0?

问题原因及修正方案

核心问题

你写的代码e.loc[(e.iloc[:,-1]<1.01) & (e.iloc[:,-1]>0.99)]=4.0只指定了行的筛选条件,没有明确限定要修改的列,所以Pandas会把符合条件的整行所有元素都设为4.0,而非仅修改最后一列。

修正方法

要只修改最后一列,需要在loc中同时指定行条件和目标列,以下是几种可行写法:

  • 用e.columns[-1]定位最后一列:
e.loc[(e.iloc[:,-1]<1.01) & (e.iloc[:,-1]>0.99), e.columns[-1]] = 4.0
  • 直接用最后一列的默认列名(你的DataFrame列名是0、1、2,最后一列是2):
e.loc[(e[2]<1.01) & (e[2]>0.99), 2] = 4.0
  • 用between简化范围判断(inclusive='neither'表示不包含边界值,和原逻辑一致):
e.loc[e.iloc[:,-1].between(0.99, 1.01, inclusive='neither'), e.columns[-1]] = 4.0

额外注意点

你的代码里pd.dataframe(d)存在拼写错误,正确写法是pd.DataFrame(d)(首字母D大写),否则会触发AttributeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:20:27