pandas: TypeError: 此数据类型不允许进行'reduction'操作'argmax

0 投票
1 回答
3527 浏览
提问于 2025-06-18 04:11

这是关于使用 Python 3.7.6 和 Jupyter Notebook 的内容。

import numpy as np
import pandas as pd

chipo = pd.DataFrame(open('orders_24.csv').read().splitlines())

chipo = chipo[0].str.split('\t',expand=True)

chipo.columns = ['order_id', 'quantity', 'item_name', 'choice_description', 'item_price']

chipo = chipo.drop(labels=0)

chipo

这是一个叫 chipo 的数据集

我想找到那个item,它的order_id是最大的:

我尝试了很多方法,但无法使用这个函数

我这样做有什么问题吗?有没有其他方法可以找到那个item的最大order_id?谢谢!

相关问题:

  • 暂无相关问题
暂无标签

1 个回答

0

你需要改变一下“order_id”的数据类型。现在它看起来是一个对象类型。你可以用dtypes来确认一下它的类型。

print(chipo.dtypes)

对象类型是无法找到最大值的。你可以使用astype方法来改变这一列的类型,把它转换成整数类型。

chipo['order_id'] = chipo['order_id'].astype('int') # Change column type to integer
print(chipo['item_name'].iloc[chipo['order_id'].argmax()]) # Print result

注意,如果你现在检查dtypes,chipo['order_id']的类型现在变成了整数(int)。

如果你不想永久性地改变这一列,你可以用一行代码来解决这个问题。

print(chipo['item_name'].iloc[chipo['order_id'].astype('int').argmax()])

最后,作为参考,你应该时刻关注你正在处理的列的类型。这可以帮你避免很多后续的麻烦。

撰写回答