我导入这个 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。我该如何解决这个问题?
1 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
在你正确的命令之前
sales['Price'] = sales.Price.astype('int64')
你很可能执行了命令
sales['Price'] = sales.Price.dtype
它将列中的字符串更改Price
为数据类型。
重复你所有的命令(没有sales['Price'] = sales.Price.dtype
)就可以了。
添加回答
举报
0/150
提交
取消