CSV__02--使用csv库对每条商品求平均评分

1. 导入CSV文件

首先,我们需要导入csv库来处理CSV文件。CSV(逗号分隔值)是一种常用的存储数据的文件格式,以逗号作为字段的分隔符。

import csv

接下来,我们需要读取CSV文件并将数据存储在内存中以便后续处理。假设我们有一个名为data.csv的CSV文件,其中包含了每条商品的评分数据。

filename = 'data.csv'

with open(filename, 'r') as file:

reader = csv.reader(file)

data = list(reader)

2. 计算每条商品的平均评分

现在我们有了包含了商品评分数据的data列表,我们可以开始计算每条商品的平均评分。

首先,我们需要确定每条商品的评分所在的列。假设评分数据在CSV文件的第二列(索引为1),我们可以使用enumerate函数来遍历每一行,并计算每条商品的评分总和和数量。

ratings_sum = {}

ratings_count = {}

for row in data[1:]:

item = row[0] # 商品名称所在的列

rating = float(row[1]) # 评分所在的列

if item in ratings_sum:

ratings_sum[item] += rating

ratings_count[item] += 1

else:

ratings_sum[item] = rating

ratings_count[item] = 1

ratings_sumratings_count都是字典,用来存储每条商品的评分总和和数量。我们通过遍历每条数据,将每个商品的评分累加到对应的总和上,同时记录该商品的评分数量。

最后,我们可以通过除以评分数量,计算出每条商品的平均评分。

ratings_avg = {}

for item in ratings_sum:

avg = ratings_sum[item] / ratings_count[item]

ratings_avg[item] = avg

现在,我们已经得到了每条商品的平均评分。我们可以将结果保存到一个新的CSV文件中,方便后续使用。

output_file = 'ratings_avg.csv'

with open(output_file, 'w', newline='') as file:

writer = csv.writer(file)

writer.writerow(['Item', 'Average Rating'])

for item in ratings_avg:

writer.writerow([item, ratings_avg[item]])

在上面的代码中,我们创建了一个名为ratings_avg.csv的新文件,并将商品名称和平均评分写入文件的第一行。然后,我们遍历ratings_avg字典,并将每条商品的名称和平均评分写入一行。

3. 总结

通过使用csv库,我们可以方便地读取和处理CSV文件。在本文中,我们演示了如何使用csv库计算每条商品的平均评分,并将结果保存到一个新的CSV文件中。

通过导入CSV文件,我们将数据存储在内存中以便后续处理。然后,我们遍历数据,计算每条商品的评分总和和数量。最后,我们通过除以评分数量,计算出每条商品的平均评分。

这种方法可以很容易地扩展到处理更大的CSV文件,可以处理包含数千条商品的数据。

后端开发标签