首页 > 解决方案 > 在 idxmax 上使用 iloc 时出现“IndexError:单个位置索引器超出范围”(值不应超出范围?)

问题描述

我有以下代码:

a_list=[y_list, o_list, r_list]
maks=[]
date=[]
nokl=[]
for the_list in a_list:
    for j in the_list:
        nokl.append(j)
        maks.append((f2021_1[j].max()))
        date.append((f2021_1['ts'].iloc[(f2021_1[j].idxmax())]))
res_l1= pd.DataFrame({'nokl':nokl, 'date':date, 'maks':maks})

这导致:

IndexError: single positional indexer is out-of-bounds
--> date.append((f2021_1['ts'].iloc[(f2021_1[j].idxmax())]))

但是,当试图为数据框中的某些内容的最大值找到不同的列值时,这怎么可能超出界限?

f2021_1 是名为 f2021 的大型 df 的一部分。当我在 f2021 上运行相同的代码时,它工作正常,从“ts”列返回带有日期的结果数据框。完全相同的代码但不同的df。

因此,我尝试在大型数据帧的子集上通过 copy() 创建 f2021_1,但这无济于事。我也试过没有运气的深拷贝。

我究竟做错了什么?

标签: pandas

解决方案


推荐阅读