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

遍历200个已定义数据集调用iloc报AttributeError问题咨询

错误原因

你代码中('dataset'+j)生成的是字符串类型的变量名,并非你提前定义好的数据集对象本身,字符串类型没有iloc属性,因此会抛出对应的AttributeError。
除此之外你原有代码还存在两处逻辑错误:

  • 初始化的Tdata形状仅为[20,6],但遍历200个数据集、每个取20行总共需要4000行存储空间,形状不匹配导致数据无法正常写入
  • random.randint(100)语法错误,该方法必须传入上下限两个参数,仅传入单个参数会抛出参数数量异常
解决方法

最规范的写法是先将所有提前定义的数据集存入列表,再遍历列表取值:

import numpy as np
import random

# 方法1:提前将数据集存入列表(推荐)
dataset_list = [dataset0, dataset1] # 补充写完到dataset199即可
# 如果不想手写200个变量,也可以用全局变量动态读取(不推荐生产环境使用)
# dataset_list = [globals()[f'dataset{j}'] for j in range(200)]

# 初始化正确大小的空数组
Tdata = np.zeros([20 * 200, 6])
k = 0
for ds in dataset_list:
    for _ in range(20):
        # 生成合法的随机行索引,范围是0到数据集行数-1
        random_idx = random.randint(0, len(ds) - 1)
        Tdata[k:k+1, :] = ds.iloc[random_idx].values
        k += 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:24:02