2024-09-23 06:32:41 发布
网友
我有一个通过json导入的列表
[{'beer/ABV': 5.0, 'beer/beerId': '47986', 'beer/brewerId': '10325', 'beer/name': 'Sausa Weizen', ...
这包括哪些顾客喝了哪些啤酒以及他们的评分。我想计算每种啤酒的平均评分。在python中最有效的方法是什么?我可以用numpy或scipy
我认为这应该做你想要的(你必须首先安装熊猫):
import pandas beers = [ {'beer/beerId': '789', 'beer/ABV': 5.0, 'beer/name': 'Sausa Weizen'}, {'beer/beerId': '789', 'beer/ABV': 4.0, 'beer/name': 'Sausa Weizen'}, {'beer/beerId': '789', 'beer/ABV': 3.0, 'beer/name': 'Sausa Weizen'}, {'beer/beerId': '123', 'beer/ABV': 1.0, 'beer/name': 'Bud Light'}, {'beer/beerId': '123', 'beer/ABV': 2.0, 'beer/name': 'Bud Light'} ] df = pandas.DataFrame(beers) df.groupby(['beer/beerId']).mean()
调用列表beer_json,并假定beer/ABV是评级:
beer_json
beer/ABV
import numpy as np beer_ratings = {} for beer in {beer_info['beer/beerId'] for beer_info in beer_json}: ratings = [beer_info['beer/ABV'] for beer_info in beerjson if beer_info['beer/beerId'] == beer] beer_ratings[beer] = np.mean(ratings)
它对每种啤酒迭代一次(使用它的beerId),然后创建一个只包含该啤酒评级的列表ratings,并计算平均值
beerId
ratings
我不能保证这是最有效的方法,但是因为您使用的是Python,所以我猜效率并不是最重要的
我认为这应该做你想要的(你必须首先安装熊猫):
调用列表
beer_json
,并假定beer/ABV
是评级:它对每种啤酒迭代一次(使用它的
beerId
),然后创建一个只包含该啤酒评级的列表ratings
,并计算平均值我不能保证这是最有效的方法,但是因为您使用的是Python,所以我猜效率并不是最重要的
相关问题 更多 >
编程相关推荐