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

将DataFrame中仅数值型值转换为0/1二进制形式的技术咨询

Pandas DataFrame数值列二进制转换及新增分类列实现

核心思路

  • 自动识别所有数值型列,将大于0的值转为1,0保持不变
  • 新增category列并插入到DataFrame首位

代码实现

import pandas as pd

# 构造初始DataFrame
df = pd.DataFrame({
    'summary': ['xyz', 'abc'],
    'word1': [0, 32],
    'word2': [56, 0]
})

# 处理数值列的二进制转换
numeric_columns = df.select_dtypes(include=['number']).columns
df[numeric_columns] = df[numeric_columns].gt(0).astype(int)

# 添加category列到首位
df.insert(0, 'category', [f'category{i+1}' for i in df.index])

# 输出结果
print(df)

代码说明

  • select_dtypes(include=['number']):自动筛选所有数值类型列,无需手动指定列名,适配更多列的场景
  • gt(0).astype(int):先判断值是否大于0(返回布尔值),再将布尔值转为整数(True→1,False→0)
  • insert(0, ...):把生成的分类列插入到DataFrame的第一列位置,分类名称按行索引自动生成

转换后结果

categorysummaryword1word2
category1xyz01
category2abc10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:55:27