问候,我有一个索引从 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/