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

如何用Python将多层级类别自动缩减为两级类别?

解决方法:将多层级类别缩减为两级格式

核心逻辑

不管原类别是两级、三级还是更多层级,以-为分隔符拆分字符串,仅保留前两部分再用-拼接,已经是两级的类别保持不变。

具体实现

1. 单条/小批量数据处理(纯字符串操作)

def shrink_category(category):
    # 按'-'分割字符串,取前两个部分
    parts = category.split('-')
    return '-'.join(parts[:2])

# 测试示例
sample_cats = [
    "ABC-XYZ-123-!@!",
    "ABC-XYZ-2@#",
    "ABC-XYZ",
    "dfg-ZZZ-123-!@!",
    "dfg-ZZZ-2@#"
]
for cat in sample_cats:
    print(shrink_category(cat))

运行输出:

ABC-XYZ
ABC-XYZ
ABC-XYZ
dfg-ZZZ
dfg-ZZZ

2. 大型数据集处理(结合Pandas)

针对你10万行的数据集,用Pandas处理效率更高:

import pandas as pd

# 读取数据集(假设是CSV格式,其他格式可对应调整读取方法)
df = pd.read_csv('your_data.csv')

# 批量处理Category列
df['Category'] = df['Category'].apply(lambda x: '-'.join(x.split('-')[:2]))

# 保存处理后的结果
df.to_csv('processed_data.csv', index=False)

补充说明

  • 如果存在仅一级的类别(如ABC),上述代码会直接返回原字符串,你可以根据需求添加逻辑(比如补默认后缀、过滤这类数据)。
  • 类别中的特殊字符(如!@#)不会影响分割和拼接操作,因为我们仅按-做分隔。

内容的提问来源于stack exchange,提问作者Luís Henrique Angélico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:25:27