【问题标题】:IndexError: index 43462904 is out of bounds for size 43462904IndexError:索引 43462904 超出大小 43462904 的范围
【发布时间】:2018-11-30 21:59:49
【问题描述】:

我有一个包含 43462904 万条记录的数据集。我尝试用两个变量进行分组,并对第三个变量取平均值。

函数为:df1 = df.groupby(["var1", pd.Grouper(key="var2"freq="MS")]).mean()

退出的错误如下:IndexError: index 43462904 is out of bounds for size 43462904

错误是因为我的数据集很长?数据函数少的函数

【问题讨论】:

    标签: python-3.x group-by compiler-errors index-error


    【解决方案1】:

    长度为 N 的数组可以用 0 ... N-1 进行索引:

    arr = [0,1,2]

    arr[0]: 0

    arr[1]: 1

    arr[2]: 2

    len(arr): 3

    在本例中,您尝试访问无效的 arr[3],因为它是数组中的第 N+1 个条目。

    【讨论】:

    • 在你的例子中我理解了这个概念,但在我的例子中没有。我可以修复我的错误吗?
    • 我怀疑它与大小有关。用一个很小或很小的示例数据集尝试您的代码。如果问题仍然存在,请将其附加到您的问题中。很难以不同的方式回答您的问题,因为我们对您的数据(帧)知之甚少
    • 我已经尝试了一个小数据集,没有问题。为了不创建很多批次,我更喜欢对所有数据使用该函数
    • 那么你能用一个完整的、可验证的代码示例来修改你的问题吗?充其量我们可以重现错误……但是对于 10M 数据集,这很难。您的大数据在某处的结构是否与您的示例数据集不同,因此生成方式不同?是否从文件中读取的某些数字推断出索引?是否假设文件中的行数等于数据集的数量(很容易被空行打破)?
    • 我发现 2 行带有 NaN,可能错误是这样的
    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2021-07-17
    • 2018-04-10
    • 2021-05-24
    • 2018-05-09
    • 2015-08-06
    相关资源
    最近更新 更多