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

如何使用Python(含Pandas)将CSV类别标签转换为独热编码格式

嘿,这个需求用Pandas就能轻松实现,我给你两种实用的方案,都是几行代码就能搞定的事儿:

方法一:用pd.get_dummies()(最直接推荐)

这是Pandas专门用来生成独热编码的工具,完美匹配你的需求:

import pandas as pd

# 1. 读取原始CSV文件
df = pd.read_csv('your_label_file.csv')

# 2. 对type列生成独热编码,prefix参数指定列名前缀为type
one_hot = pd.get_dummies(df['type'], prefix='type')

# 3. 把id列和独热编码列合并起来
result_df = pd.concat([df['id'], one_hot], axis=1)

# 可选:如果需要确保列的顺序严格是type1→type4(比如原数据type出现顺序不规则时)
result_df = result_df[['id', 'type1', 'type2', 'type3', 'type4']]

# 4. 保存成新的CSV(如果需要的话)
result_df.to_csv('one_hot_labels.csv', index=False)

方法二:用pd.crosstab()

如果你习惯用交叉表的方式生成,也可以这么做,效果完全一致:

import pandas as pd

df = pd.read_csv('your_label_file.csv')

# 用id和type做交叉表,自动生成每个id对应的类别标记
result_df = pd.crosstab(df['id'], df['type']).reset_index()

# 重命名列名,改成你要的type1/type2格式
result_df.columns = ['id'] + [f'type{i}' for i in result_df.columns[1:]]

# 保存结果
result_df.to_csv('one_hot_labels.csv', index=False)

小提示

  • 两种方法都会自动把原始的type值(1/2/3/4)转换成对应的列:比如type=1时,type1列是1,其他列是0,完全符合你要的格式。
  • 如果你的原始数据里type可能有超出1-4的类别,记得先做过滤(比如df = df[df['type'].isin([1,2,3,4])]),避免生成多余的列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:57:46