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

如何将Pandas DataFrame的Class列拆分为多列并设置对应列名

解决Pandas DataFrame拆分Class列为多列的问题

需求说明

将DataFrame中的Class列拆分为以其取值(A、B、C、D)命名的新列,对应行的新列填充Class列的取值,其余列留空。

初始DataFrame

ID    Name Class
0   12    John     A
1   13    Mark     A
2   14    Tony     B
3   15  Marcus     C
4   16   Phill     D
5   17    Jack     A

期望结果

ID    Name Class  A  B  C  D
0   12    John     A  A        
1   13    Mark     A  A        
2   14    Tony     B     B     
3   15  Marcus     C        C  
4   16   Phill     D           D
5   17    Jack     A  A        

实现代码

import pandas as pd

# 构造初始数据
df = pd.DataFrame({
    'ID': [12, 13, 14, 15, 16, 17],
    'Name': ['John', 'Mark', 'Tony', 'Marcus', 'Phill', 'Jack'],
    'Class': ['A', 'A', 'B', 'C', 'D', 'A']
})

# 遍历目标列名,生成对应列
for col_name in ['A', 'B', 'C', 'D']:
    # 当Class等于列名时保留原值,否则设为空字符串
    df[col_name] = df['Class'].where(df['Class'] == col_name, '')

# 查看结果
print(df)

代码说明

  • 利用df['Class'].where(条件, 替代值)方法:满足条件时保留Class列的取值,不满足则用空字符串填充对应列。
  • 通过循环遍历目标列名,逐个生成新列,逻辑简洁易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:25:24