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

Python中如何将表格列值拆分为多行并新增category列

Python实现表格按值等分拆行、新增分类列

处理这类表格转换需求,用pandas库实现最简便,步骤如下:

  • 先安装依赖库:执行命令pip install pandas
  • 核心逻辑:将原始每一行重复指定份数,计算等分后的value值,再按顺序给拆分出的行填充分类值

完整可运行代码如下:

import pandas as pd

# 1. 读取/构造原始数据,实际场景替换为pd.read_csv()/pd.read_excel()读取本地文件
raw_df = pd.DataFrame({
    'date': ['2021-02-03', '2021-02-04', '2021-02-05'],
    'type': ['a', 'b', 'c'],
    'value': [150, 150, 150]
})

# 2. 配置拆分规则:要填充的分类值列表,列表长度就是拆分的份数
category_list = ['x', 'y', 'z']
split_count = len(category_list)

# 3. 行拆分处理
# 每一行重复split_count次
result_df = raw_df.loc[raw_df.index.repeat(split_count)].reset_index(drop=True)
# value等分为split_count份
result_df['value'] = result_df['value'] / split_count
# 按顺序填充category列
result_df['category'] = category_list * len(raw_df)

# 4. 导出结果,不需要导出可以注释这行
result_df.to_csv('拆分结果.csv', index=False)

# 打印验证结果
print(result_df)

运行后输出的结果和预期结构完全一致:

date type  value category
0  2021-02-03    a   50.0        x
1  2021-02-03    a   50.0        y
2  2021-02-03    a   50.0        z
3  2021-02-04    b   50.0        x
4  2021-02-04    b   50.0        y
5  2021-02-04    b   50.0        z
6  2021-02-05    c   50.0        x
7  2021-02-05    c   50.0        y
8  2021-02-05    c   50.0        z

补充说明

  • 如果需要value保留整数,把计算value的代码改成result_df['value'] = result_df['value'] // split_count即可
  • 如果后续需要调整拆分份数、分类值,只需要修改category_list的内容就行,其他代码逻辑不用改动
  • 读取和导出文件支持csv、excel等多种格式,根据自己的文件类型切换pandas对应的读写方法即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:45:43