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

如何用Python中DataFrame指定列的唯一值动态创建新列?

用DataFrame某列唯一值动态创建新列的方法

方法一:用pandas内置函数(最简便)

pandas的get_dummies()可以自动识别目标列的所有唯一值,生成对应新列,完全适配任意数量的唯一值,新手直接用就行。

先构造你的示例数据:

import pandas as pd

# 创建示例DataFrame
data = {'Column1': ['Apple', 'Apple', 'Banana', 'Strawberry', 'Strawberry', 'Strawberry']}
df = pd.DataFrame(data)

调用函数生成新列:

# 生成新列并合并到原DataFrame
df = pd.get_dummies(df, columns=['Column1'], prefix='', prefix_sep='')

最终结果会是这样:

AppleBananaStrawberry
100
100
010
001
001
001

方法二:手动循环实现(适合理解逻辑)

如果想搞清楚每一步的原理,可以手动遍历唯一值创建列,步骤很清晰:

  1. 先获取目标列的所有唯一值
  2. 逐个遍历这些值,创建对应新列,用1/0标记原列是否等于当前值

代码示例:

import pandas as pd

# 创建示例DataFrame
data = {'Column1': ['Apple', 'Apple', 'Banana', 'Strawberry', 'Strawberry', 'Strawberry']}
df = pd.DataFrame(data)

# 获取Column1的唯一值列表
unique_values = df['Column1'].unique()

# 遍历每个唯一值创建新列
for value in unique_values:
    # 新列名就是唯一值,匹配到就设为1,否则为0
    df[value] = (df['Column1'] == value).astype(int)

# 不需要原列的话可以删掉
# df.drop('Column1', axis=1, inplace=True)

运行后得到的结果和方法一完全一致,这种方式更直观,适合新手理解底层逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:20:24