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

将含重复列的Pandas DataFrame拆分为多个独立DataFrame

拆分含重复列结构的Pandas DataFrame

问题场景

给定如下结构的DataFrame,包含多组并排的重复列(本例是2组item#、name、value、price结构,扩展到4-5组逻辑一致):

item#   name    value   price   item#   name    value   price
1       testname testvalue 12      5       testname5 testvalue5 12
2       testname testvalue 12      7       testname7 testvalue7 21
3       testname testvalue 12      9       testname9 testvalue9 4

通用拆分方法

核心思路是按固定列数分组切片——因为每组的列结构重复且列数固定,步骤如下:

  1. 明确单组的列数:比如本例中每组是4列(item#、name、value、price),记为group_size = 4。
  2. 计算总组数:用DataFrame的总列数除以单组列数,num_groups = df.shape[1] // group_size。
  3. 循环拆分,同时统一列名(避免原重复列名造成的混乱)。

代码实现

1. 构造示例DataFrame

import pandas as pd

# 构造示例数据
data = [
    [1, "testname", "testvalue", 12, 5, "testname5", "testvalue5", 12],
    [2, "testname", "testvalue", 12, 7, "testname7", "testvalue7", 21],
    [3, "testname", "testvalue", 12, 9, "testname9", "testvalue9", 4]
]
# 原重复列名
columns = ["item#", "name", "value", "price", "item#", "name", "value", "price"]
df = pd.DataFrame(data, columns=columns)

2. 通用拆分逻辑

# 定义单组列数
group_size = 4
# 拆分后统一使用的列名
standard_columns = ["item#", "name", "value", "price"]
# 计算总组数
num_groups = df.shape[1] // group_size

# 存储拆分后的所有DataFrame
split_dfs = []

for i in range(num_groups):
    # 计算当前组的列索引范围
    start_col = i * group_size
    end_col = start_col + group_size
    # 切片提取当前组数据
    group_df = df.iloc[:, start_col:end_col]
    # 重命名列
    group_df.columns = standard_columns
    # 添加到结果列表
    split_dfs.append(group_df)

3. 验证结果

拆分后split_dfs列表中的每个元素都是独立的DataFrame:

  • split_dfs[0]对应第一组数据:
item#     name      value  price
0      1  testname  testvalue     12
1      2  testname  testvalue     12
2      3  testname  testvalue     12
  • split_dfs[1]对应第二组数据:
item#       name        value  price
0      5  testname5  testvalue5     12
1      7  testname7  testvalue7     21
2      9  testname9  testvalue9      4

扩展到多组情况

如果是4-5组重复结构,只需保持group_size为单组列数(比如还是4列),代码逻辑完全无需修改——程序会自动根据总列数计算组数并完成拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:15:49