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

Python中如何拆分矩阵并将c1与其余列组合存为独立DataFrame?

Python实现固定列与其余列两两组合拆分独立DataFrame

核心基于pandas实现,优先推荐用字典存储拆分后的DataFrame,避免动态生成零散变量带来的命名空间污染、难以批量维护的问题。

完整实现步骤

  • 第一步:导入依赖,构造/读取原始数据
import pandas as pd
import numpy as np

# 示例:构造和描述场景一致的原始表,共c1~c50 50列、4行数据
raw_df = pd.DataFrame(
    np.random.randint(1, 500, size=(4, 50)),
    columns=[f"c{i}" for i in range(1, 51)]
)
  • 第二步:循环拆分生成子DataFrame,存入字典
# 初始化存储容器,key为自定义的DataFrame名称,value为拆分后的子表
split_df_map = {}

# 固定保留c1列,遍历c2到c50的所有列
for target_col in raw_df.columns[1:]:
    # 切片取c1+当前遍历列,copy是为了避免后续修改子表影响原始数据
    sub_df = raw_df[["c1", target_col]].copy()
    # 按规则命名,比如c1和c2组合的表命名为df_c1_c2
    df_name = f"df_c1_{target_col}"
    split_df_map[df_name] = sub_df
  • 第三步:调用使用
    需要取对应子表时,直接通过key索引即可,比如获取c1和c10组合的表:
# 取c1与c10组合的DataFrame
c1_c10_df = split_df_map["df_c1_c10"]

如果需要批量处理所有拆分后的表,直接遍历字典即可,无需手动逐个调用变量。

特殊场景:动态生成独立变量(不推荐)

如果必须要生成独立命名的全局变量(存在命名冲突、后期维护成本高的风险),可以通过修改全局命名空间实现:

警告:该方式仅适用于临时快速脚本,正式生产代码禁止使用

for target_col in raw_df.columns[1:]:
    sub_df = raw_df[["c1", target_col]].copy()
    df_name = f"df_c1_{target_col}"
    # 动态注册为全局变量
    globals()[df_name] = sub_df

# 执行后可以直接调用变量名,比如print(df_c1_c5)即可打印对应表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:55:15