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

如何在Pandas中基于另一列的数值范围修改列值?

Pandas按数值范围修改DataFrame列值的正确方法

你当前代码里用and连接两个布尔条件会报错,因为Pandas的Series不能直接用Python原生的and/or运算符,得用向量化的逻辑运算符&(表示“且”),而且每个条件要单独加括号。

正确写法有两种:

方法一:使用&连接范围条件

import pandas as pd
df = pd.read_csv("test.csv")
# 用&连接两个条件,每个条件加括号
df.loc[(df.meters <= 30) & (df.meters >= 15), 'Class'] = 4

方法二:使用between()方法(更简洁)

Pandas提供了between()方法,可以直接判断数值是否在指定区间内,代码更简洁:

import pandas as pd
df = pd.read_csv("test.csv")
# between默认包含区间两端的值,等价于15 ≤ meters ≤30
df.loc[df.meters.between(15, 30), 'Class'] = 4

如果需要调整区间的开闭,可以用inclusive参数,比如只包含左端点:

df.loc[df.meters.between(15, 30, inclusive='left'), 'Class'] = 4

内容的提问来源于stack exchange,提问作者Austin Gyan Marbella

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:20:20