出现错误:int() 参数必须是字符串、类似字节的对象或数字,而不是 'numpy.dtype

我导入这个 csv 文件:

sales = pd.read_csv('http://samplecsvs.s3.amazonaws.com/SalesJan2009.csv')

我正在尝试制作数据透视表,但在执行此操作时我注意到:

sales.pivot_table(index='Product', columns='Payment_Type', values= 'Price' )

我得到一个错误

价格列是字符串数据类型

然后我尝试将列转换为浮动并执行此操作:

sales.Price.astype('float64')

然后,它显示

错误:无法将字符串转换为浮点数:'13,000'

我意识到Price列中有一个带逗号的值,因此不会发生浮点数转换。所以我通过下面的方法删除了逗号并使用iloc它来检查它是否有效并且确实有效,该值更改为 13000:

sales['Price']= sales.Price.str.replace(',', '')

sales.iloc[558, 2]

当我尝试将 Price 列转换为 float64 时,我再次收到这个我不明白的错误:

sales['Price'] = sales.Price.astype('int64')

错误:获取错误:int() 参数必须是字符串、类似字节的对象或数字,而不是“numpy.dtype”

有谁知道发生了什么事?这是什么类型的numpy.dtype?它既不是numpy.float64也不是numpy.int64

我该如何解决这个问题?


扬帆大鱼
浏览 55回答 1
1回答

海绵宝宝撒

在你正确的命令之前sales['Price'] = sales.Price.astype('int64')你很可能执行了命令sales['Price'] = sales.Price.dtype它将列中的字符串更改Price为数据类型。重复你所有的命令(没有sales['Price'] = sales.Price.dtype)就可以了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python