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

如何通过循环生成带数字后缀命名的多个DataFrame?

问题解决方案

这里有两种常用实现方式,推荐优先用第一种字典存储的方案,代码维护性更高:

方案1:用字典存储所有子DataFrame(推荐)

把所有子表存在一个字典里,调用的时候直接取sub_df_dict['sub_df_1']格式即可,实现代码如下:

import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/imdb_1000.csv')

split_point = [0,10,25,168]
sub_df_dict = {}
n = len(split_point) 
for i in range(0, n-1): 
    print("Dataset ", i+1, " - Record Range: ",  split_point[i], '-', split_point[i+1]-1)
    # 按要求格式生成键名存储子表
    sub_df_dict[f'sub_df_{i+1}'] = df.iloc[split_point[i]:split_point[i+1], :]

调用示例:需要读取第一个子表时,直接使用sub_df_dict['sub_df_1']即可。

方案2:动态生成全局变量(不推荐,易造成全局变量污染)

如果确实需要直接生成sub_df_1、sub_df_2这类可以直接调用的独立变量,可以通过globals()方法实现:

import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/imdb_1000.csv')

split_point = [0,10,25,168]
n = len(split_point) 
for i in range(0, n-1): 
    print("Dataset ", i+1, " - Record Range: ",  split_point[i], '-', split_point[i+1]-1)
    # 动态生成对应命名的全局变量
    globals()[f'sub_df_{i+1}'] = df.iloc[split_point[i]:split_point[i+1], :]

运行后即可直接调用sub_df_1、sub_df_2、sub_df_3三个子表变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:54:05