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

如何按列名拆分DataFrame并按迭代序号重命名新数据框

解决方案

直接实现序号命名的拆分代码

你可以使用enumerate()函数同时获取迭代序号和对应的LocationId值,生成dfM_1、dfM_2这类按序号命名的子DataFrame:

for idx, name in enumerate(Alldata['LocationId'].unique(), start=1):
    locals()[f'dfM_{idx}'] = Alldata[Alldata['LocationId'] == name]

你之前代码的问题

你尝试的代码逻辑混乱,错误嵌套循环结构,没有将序号与DataFrame拆分操作正确关联,因此无法生成预期命名的变量。

更优的实践方案

不推荐用locals()动态创建变量,这类变量难以追踪和维护。更建议用字典存储所有子DataFrame,管理起来更清晰:

# 创建字典存储子DataFrame
sub_dfs = {}
for idx, name in enumerate(Alldata['LocationId'].unique(), start=1):
    sub_dfs[f'dfM_{idx}'] = Alldata[Alldata['LocationId'] == name]

# 调用子DataFrame示例:获取第一个子DataFrame
first_sub_df = sub_dfs['dfM_1']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:45:45