如何用最简方式在Pandas中拆分多个DataFrame?
批量拆分DataFrame的简洁方法
针对你重复编写拆分代码的问题,有两种高效的批量处理方式,完全基于Pandas实现:
方法1:用列表统一管理DataFrames
先把所有需要处理的DataFrame放进一个列表,再通过列表推导式批量生成训练集:
# 第一步:把10个DataFrame存入列表 dfs = [df1, df2, df3, df4, df5, df6, df7, df8, df9, df10] # 第二步:批量拆分训练集 train_dfs = [df.loc[:, Start:end] for df in dfs]
拆分后的训练集按顺序存在train_dfs里,train_dfs[0]对应原df1的训练集,train_dfs[1]对应原df2的训练集,以此类推。如果还需要生成验证集,也可以用同样逻辑扩展:
# 假设验证集是另一列范围 val_dfs = [df.loc[:, val_start:val_end] for df in dfs]
方法2:用字典管理(更易通过名称访问)
如果需要保留原DataFrame的名称以便后续快速调用,用字典存储会更方便:
# 第一步:用字典存储,键为原DataFrame的名称,值为对应DataFrame dfs_dict = { "df1": df1, "df2": df2, # ... 依次添加到df10 "df10": df10 } # 第二步:批量生成训练集字典 train_dict = {name: df.loc[:, Start:end] for name, df in dfs_dict.items()}
之后可以直接通过train_dict["df1"]获取原df1的训练集,和直接定义df1_train的效果完全一致。
这两种方法都能把10行重复代码压缩到2-3行,后续如果要调整拆分范围,只需要修改一处即可,维护性大幅提升。
内容的提问来源于stack exchange,提问作者Sadcow
相关产品推荐
相关产品推荐

