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

如何在Python for循环中同时迭代DataFrame及其索引构建二维矩阵?

如何同时迭代列表中的DataFrame及其索引序号?

问题背景

现有读取CSV文件并存储为DataFrame列表的代码:

path_real = r'C:/Users/SLR CSV'
all_files_real = glob.glob(os.path.join(path , "2*.csv.zip"))

list_real = []

for filename in all_files_real:
    df_real = pd.read_csv(filename, index_col=None, header=0, sep=';')
    list_real.append(df_real)

在遍历list_real进行计算时,当前代码框架如下:

for lst in list_real :
    lst=datareal
    # 一些计算代码
    a=[]
    
    # 另一个循环
         b=x/zzz
         a.append(b)

需要在外层for循环中同时获取每个DataFrame(lst)以及它在list_real中的索引序号,这样就能把每个DataFrame计算得到的列表a作为列赋值到二维matrix中,实现类似以下的操作:

for i in range (row):
        matrix[i][col]=a[i]

解决方案

直接使用Python内置的enumerate()函数即可,它能在遍历可迭代对象时同时返回索引序号和对应元素。

修改后的外层循环代码如下:

# 假设matrix已经提前初始化好,行数与a的长度一致,列数等于list_real的长度
for idx, datareal in enumerate(list_real):
    # 一些计算代码
    a = []
    
    # 另一个循环,生成a列表(示例逻辑)
    for x, zzz in zip(some_x_list, some_zzz_list):
        b = x / zzz
        a.append(b)
    
    # 将a作为第idx列赋值到matrix中
    for i in range(len(a)):
        matrix[i][idx] = a[i]

关键说明

  • enumerate(list_real)会返回迭代器,每次迭代产出元组(索引序号, 对应的DataFrame)
  • 把原代码中lst=datareal的赋值逻辑调整为直接从enumerate获取datareal,避免变量混淆
  • 索引序号idx可直接作为matrix的列号,完成对应列的赋值操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:25:34