idxmax()提供无法找到的索引。

时间:2018-10-14 04:33:45

标签: python python-3.x pandas indexing

问候,我有一个df,索引从0到00.62799999999999999999。

我使用idxmax()在一列-df [A列]中找到max变量的索引。 可以说索引是0.5579999999999998,我将其分配给变量max 例如:max = df [Column A] .idxmax

但是,当我尝试使用df [Column B] .iloc(max)将元素/变量定位在另一列(B列)的at索引处时

我收到了错误消息: 没有名为对象类型

的轴0.5579999999999998

但是当我手动检查时,可以看到索引0.5579999999999998。

是类型错误吗?还是只是我很傻?

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在处理像这样的微小值时,总是存在浮点错误的危险。 idxmax()返回的内容可能与索引中存在的内容相差20位。

我要提出的第一个建议是缩放索引,四舍五入或者根本不将其作为索引。

现在,要访问该特定行,请使用np.isclose并使用掩码对DataFrame进行索引:

df[np.isclose(df.index, df['Column A'].idxmax())]