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

如何基于数据框列按指定分箱规则生成二进制虚拟变量(以年龄为例)

实现方案

你可以用Python的pandas库或者R的tidyverse系列工具快速实现,以下是两种常用语言的可运行代码:

Python(pandas)实现

核心逻辑是先用pd.cut()完成年龄分箱,再用pd.get_dummies()生成虚拟变量后合并回原表:

import pandas as pd

# 构造示例数据框
df = pd.DataFrame({
    'ID': [1,2,3,4,5,6,7],
    'Age': [32,58,39,67,72,74,23]
})

# 定义分箱边界和对应标签
bins = [17, 34, 50, 64, float('inf')]
labels = ['Age1', 'Age2', 'Age3', 'Age4']

# 生成虚拟变量并合并
df = pd.concat([
    df,
    pd.get_dummies(pd.cut(df['Age'], bins=bins, labels=labels), dtype=int)
], axis=1)

print(df)

运行后输出的结果和你预期的完全一致。

R实现

用dplyr+tidyr的组合实现,逻辑和pandas版本一致:

library(dplyr)
library(tidyr)

# 构造示例数据框
df <- data.frame(
  ID = 1:7,
  Age = c(32,58,39,67,72,74,23)
)

# 分箱+生成虚拟变量
df <- df %>%
  mutate(age_group = cut(Age, breaks = c(17, 34, 50, 64, Inf), 
                         labels = c("Age1", "Age2", "Age3", "Age4"))) %>%
  pivot_wider(names_from = age_group, 
              values_from = age_group, 
              values_fn = ~ as.integer(!is.na(.)), 
              values_fill = 0)

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:15:04