gpt4 book ai didi

python - 将 Array 对象转换为 float - ValueError : invalid literal for float

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:09 25 4
gpt4 key购买 nike

我导入了一个包含 ['Price'] 列的 csv 文件,dtype 是对象。

我想制作价格分布的直方图。

但是,我不知道如何将 dtype 从“object”转换为“float”。

brandprice=product['Price'].values
brandprice

array(['2,143,562', '2,186,437', '2,214,903', ..., '-', '-', '-'], dtype=object)

map(float, brandprice) 

ValueError Traceback (most recent call last) in () ----> 1 map(float, brandprice) ValueError: invalid literal for float(): 2,143,562

最佳答案

这实际上与使用数组没有任何关系,只是 float 除了数字和 . 符号外不能很好地处理任何东西.所以你的逗号正在抛弃这个功能,因为它不知道如何使用它们。

如果您调用 replace(',', '') 来删除逗号,那么它会很好地解析:

>>> float("2,143,562")

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
float("2,143,562")
ValueError: invalid literal for float(): 2,143,562
>>> float("2,143,562".replace(',', ''))
2143562.0

由于您需要对完整列表执行此操作,因此我建议使用 map 和您自己编写的简短函数。像这样:

def make_float(string):
try:
return float(string.replace(',', ''))
except ValueError:
return string

map(make_float, brandprice)

这将从字符串中去除逗号,然后尝试将其转换为 float 。如果出现错误,原始字符串将原封不动地返回(因为在您的示例数据中,您显示了一些不会被解析的字符串,例如 '-'

关于python - 将 Array 对象转换为 float - ValueError : invalid literal for float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com