如何在程序中更改数据类型?

时间:2019-05-09 18:35:51

标签: python

我正在开发一个程序,该程序从csv文件中获取一列并取平均销售数据,但是却出现错误:“ +不支持的操作数类型:'int'和'str'”

我将csv文件中的列更改为数字,但仍然收到错误。

from csv import reader
opened_file = open('Catalog.csv')
read_file = reader(opened_file)
catalog_data = list(read_file)


sales_data = []
for stuff in catalog_data:
price = stuff[11]
manufacturer = stuff[7]

if manufacturer == 'HASBRO':
    sales_data.append(price)

avg_sales = sum(sales_data) / len(sales_data)

3 个答案:

答案 0 :(得分:2)

使用如下所示的投放方式

price = float(stuff[11])

答案 1 :(得分:1)

从CSV文件读入时,所有值都是字符串。

price = stuff[11]

这时,price是一个字符串。所以当你走:

sales_data.append(price)`

sales_data正在填充字符串列表。

当您最终调用sum(sales_data)时,sum函数失败,因为它假定sales_data填充有数值。

要解决此问题,只需将价格数据转换为适当的值,如下所示:

price = float(stuff[11])

请注意,如果float点值可能会失去精度,因此通常不建议使用浮点值来存储货币值。如果精度很重要,请考虑使用decimal模块。

答案 2 :(得分:0)

附加的int函数不起作用:

from csv import reader
opened_file = open('Catalog.csv')
read_file = reader(opened_file)
catalog_data = list(read_file)


sales_data = []
for sales in catalog_data:
    price = int(sales[11])
    manufacturer = sales[7]

    if manufacturer == 'HASBRO':
        sales_data.append(int(price))


avg_sales = sum(sales_data) / len(sales_data)