python - idxmax() 给出无法找到的索引。

标签 python python-3.x pandas indexing

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

我使用 idxmax() 查找一列中最大变量的索引 - df[Column A]。 假设索引是 0.5579999999999998,我将它分配给变量 max 例如:max = df[Column A].idxmax

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

我收到错误: 对象类型没有名为 0.5579999999999998 的轴

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

是类型错误吗?还是只是我太傻了?

预先感谢您的热情帮助。

最佳答案

在处理这样的微小值时,总是存在浮点不准确的危险。 idxmax() 返回的内容可能与索引中存在的内容存在低至 20 位精度的差异。

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

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

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

关于python - idxmax() 给出无法找到的索引。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799495/

相关文章:

python - 使用一个类中的变量到另一个类中

python - 如何在python中导入google的taskqueue库

python - 类型错误 : expected string or buffer while using regular expression in python

python - Pandas:对 DataFrame 的每一列进行 nansum 系列

python-3.x - OS X 上的 eventlet?

python - 提取每个类别元组中的最后一个元素

python - 将两个 Pandas 数据帧添加在一起时出现关键错误

python - 如何根据前一行信息更新pandas DataFrame

python-2.7 - 计算 Pandas 中的 3 家公司 HHI

python - 当 Pandas 满足条件时,从下一行返回值