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

如何判断DataFrame中年龄是否在指定区间并新增分组列?

问题解决:DataFrame年龄筛选与分组

一、原代码的问题分析与修正

你写的代码之所以一直输出Yes,是因为df['Age'].between(0, 10, inclusive=True).any()是检查整个Age列里是否存在至少一个符合0-10区间的值——只要列里有一个满足条件,循环的每一次都会触发print('Yes'),完全没用到当前遍历的i。

修正方案(推荐矢量化操作,比循环高效)

如果要标记每个年龄是否在0-10区间,直接生成布尔列即可:

# 新增一列标记是否在0-10区间
df['is_0_10'] = df['Age'].between(0, 10, inclusive=True)
# 查看结果
print(df[['Age', 'is_0_10']])

如果非要用循环(不推荐,pandas原生操作远快于循环),要判断当前的i:

x = df['Age']
for i in x:
    print('Yes' if 0 <= i <= 10 else 'No')

二、实现年龄分组(新增分组列)

用pd.cut()函数可以快速完成分箱分组,这是pandas处理这类需求的标准方法:

import pandas as pd

# 定义分组区间和对应标签,可根据实际需求调整
bins = [0, 10, 20, 30, 100]  # 最后一个值设为数据中最大年龄即可
labels = ['0-10', '11-20', '21-30', '31+']

# 新增年龄分组列
df['Age_Group'] = pd.cut(df['Age'], bins=bins, labels=labels, include_lowest=True)
  • include_lowest=True确保第一个区间包含0这个最小值
  • 如果你的数据里有小数年龄(比如1.5岁),这个方法也能正常处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:15:38