首页 > 解决方案 > idxmax() 不适用于 pandas DataFrame

问题描述

我有一个在读取 csv 文件后创建的 pandas 数据框。

df = pd.DataFrame(ITC)
print(df.tail(5))

这打印

            date            open  ...             low           close
488  22-May-2020          188.00  ...          184.60          186.35
489  26-May-2020          190.00  ...          187.80          191.70
490  27-May-2020          192.50  ...          186.90          192.15
491  28-May-2020          192.30  ...          189.00          190.65
492  29-May-2020          190.45  ...          189.00          197.35

我想从“关闭”列中找到最大值并且df.tail(5).close.max()工作正常。最后我想打印最大值的索引 492 所以我尝试了以下

print(df.tail(5).close.idxmax())

但它给了我以下错误

类型错误:此 dtype 不允许归约操作“argmax”

关于如何去做的任何想法?

标签: pythonpython-3.xpandas

解决方案


我认为close列不是数字,而是由字符串代表数字填充。

所以使用:

df.close = df.close.astype(float)

或者:

df.close = pd.to_numeric(df.close, errors='coerce')

推荐阅读