Python Pandas如何用for循环从大DataFrame拆分生成多个小子DataFrame
实现方案
你可以直接通过列选取+循环的方式快速完成拆分,不需要复杂逻辑,以下是可直接运行的实现代码:
方法1:简洁列表推导式(推荐)
代码最短,执行效率最高,直接生成目标列表:
# 假设你的原始DataFrame变量名为df,第一列列名为x df_list = [df[["x", col]] for col in df.columns if col != "x"]
生成的df_list是长度为50的列表,按y1到y50的顺序存储子DataFrame,每个子表都保留完整的x列和对应的单个y列,完全匹配你的预期结构。
方法2:显式for循环(方便后续扩展逻辑)
如果你需要在拆分过程中给每个子表加额外处理(比如重命名、数据清洗、计算衍生列、单独存文件),可以用显式循环写法:
df_list = [] # 遍历所有非x的Y值列 for y_col in df.columns.drop("x"): # 选取x列和当前Y列生成子表,加copy()避免后续修改子表时联动修改原始数据 sub_df = df[["x", y_col]].copy() # 自定义处理逻辑可以写在这里,比如 sub_df.to_csv(f"{y_col}.csv") 直接导出单文件 df_list.append(sub_df)
效果验证
你可以运行以下代码检查拆分结果是否符合要求:
# 打印前2个子表的前几行,核对结构 for idx, sub_df in enumerate(df_list[:2], 1): print(f"df{idx}") print(sub_df.head(), "\n")
内容的提问来源于stack exchange,提问作者SAugustus
相关产品推荐
相关产品推荐

