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

如何用分箱值替换DataFrame的Age列并生成新DataFrame?

实现连续年龄变量的分箱转换

你用pd.cut()处理连续年龄分箱的思路完全正确,这是Pandas中把连续变量转为分类变量的标准方案。下面是完整的实现代码,帮你生成目标DataFrame new_df:

原DataFrame(df):

Customer_ID  Gender  Age
0   0002-ORFBO  Female   37
1   0003-MKNFE    Male   46
2   0004-TLHLJ    Male   50
3   0011-IGKFF    Male   78
4   0013-EXCHZ  Female   75
5   0013-MHZWF  Female   23
6   0013-SMEOE  Female   67
7   0014-BMAQU    Male   52
8   0015-UOCOJ  Female   68
9   0016-QLJIS  Female   43
10  0017-DINOC    Male   47
11  0017-IUDMW  Female   25
12  0018-NYROU  Female   58
13  0019-EFAEP  Female   32
14  0019-GFNTW  Female   39
15  0020-INWCK  Female   58
16  0020-JDNXP  Female   52
17  0021-IKXGC  Female   72
18  0022-TCJCI    Male   79

完整实现代码:

import pandas as pd

# 定义分箱边界和对应标签
bins = [0, 3, 17, 25, 64, 99]
labels = ['幼儿', '儿童', '青年', '成年', '老年']

# 复制原DataFrame,避免修改原数据
new_df = df.copy()
# 将Age列替换为分箱后的分类变量
new_df['Age'] = pd.cut(df['Age'], bins=bins, labels=labels, include_lowest=True)

代码说明:

  • df.copy():复制原DataFrame生成new_df,防止直接修改原数据df
  • pd.cut()的参数:
    • bins:指定分箱的数值边界,对应你定义的年龄区间
    • labels:给每个分箱区间设置对应的中文分类标签
    • include_lowest=True:确保最小值被包含在第一个区间内,让逻辑更严谨

运行后new_df的结果:

Customer_ID  Gender    Age
0   0002-ORFBO  Female    成年
1   0003-MKNFE    Male    成年
2   0004-TLHLJ    Male    成年
3   0011-IGKFF    Male    老年
4   0013-EXCHZ  Female    老年
5   0013-MHZWF  Female    青年
6   0013-SMEOE  Female    老年
7   0014-BMAQU    Male    成年
8   0015-UOCOJ  Female    老年
9   0016-QLJIS  Female    成年
10  0017-DINOC    Male    成年
11  0017-IUDMW  Female    青年
12  0018-NYROU  Female    成年
13  0019-EFAEP  Female    成年
14  0019-GFNTW  Female    成年
15  0020-INWCK  Female    成年
16  0020-JDNXP  Female    成年
17  0021-IKXGC  Female    老年
18  0022-TCJCI    Male    老年

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:15:32