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

如何在Pandas DataFrame中对分组后的子组进行Label Encoding

在Pandas DataFrame中对分组子组执行标签编码

需求说明

针对DataFrame的Category列分组,在每个分组内对Name列执行标签编码:同一分组内不同Name对应唯一连续标签(从1开始),相同Name标签一致。

示例输入

CategoryName
FRUITSApple
FRUITSOrange
FRUITSApple
VegetablesOnion
VegetablesGarlic
VegetablesGarlic

示例输出

CategoryNameLabel
FRUITSApple1
FRUITSOrange2
FRUITSApple1
VegetablesOnion1
VegetablesGarlic2
VegetablesGarlic2

解决方案

直接使用Pandas的groupby结合factorize方法即可实现,代码如下:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Category': ['FRUITS', 'FRUITS', 'FRUITS', 'Vegetables', 'Vegetables', 'Vegetables'],
    'Name': ['Apple', 'Orange', 'Apple', 'Onion', 'Garlic', 'Garlic']
})

# 分组后对Name列生成从1开始的连续标签
df['Label'] = df.groupby('Category')['Name'].transform(lambda x: x.factorize()[0] + 1)

print(df)

代码解释

  • groupby('Category'):按Category字段拆分数据,生成独立的子组
  • transform(lambda x: x.factorize()[0] + 1):对每个子组的Name列执行factorize,该方法会将唯一值映射为从0开始的整数标签;加1是为了让标签从1开始计数;transform方法保证编码结果能和原DataFrame的行对齐,保留原数据结构不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:40:30