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

如何将含105列的DataFrame拆分为10个带固定前5列的子DataFrame

Pandas 固定列保留的DataFrame拆分实现

实现代码如下:

import pandas as pd
import numpy as np

# 此处替换为你自己的原始大DataFrame即可
# 下方为测试用构造代码,可删除
bigdf = pd.DataFrame(np.random.randn(10, 105), columns=range(105))

# 提取固定保留的前5列
fixed_cols = bigdf.columns[:5]
# 提取剩余待分组的动态列
dynamic_cols = bigdf.columns[5:]
# 按每10列一组切割动态列,共生成10组
grouped_dynamic = [dynamic_cols[i*10 : (i+1)*10] for i in range(10)]
# 拼接生成子DataFrame列表,small_dfs[0]对应第一个子df,以此类推
small_dfs = [pd.concat([bigdf[fixed_cols], bigdf[dyn_cols]], axis=1) for dyn_cols in grouped_dynamic]

如果你需要按命名规则存为字典格式,可使用如下代码:

small_df_dict = {f"smalldf{i+1}": pd.concat([bigdf[fixed_cols], bigdf[dyn_cols]], axis=1) for i, dyn_cols in enumerate(grouped_dynamic)}

验证说明

用你给出的25列测试示例运行代码,输出结果完全匹配需求:

  • small_dfs[0].columns 输出:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
  • small_dfs[1].columns 输出:[0,1,2,3,4,15,16,17,18,19,20,21,22,23,24]

通用适配提示

如果后续原始DataFrame的总列数有调整,将代码中range(10)替换为range(len(dynamic_cols)//10)即可自动适配分组数量,无需手动修改分组参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:45:03