我试图生成一个按国家分组的数据框架,列出每个国家的十大葡萄酒品种及其平均价格和点数。你知道吗
我成功地按国家和葡萄酒进行了分组,并得出了平均价格和积分。 我可以使用value_counts()生成每个国家的前10个品种。nlargest(10),但我无法通过平均数除去初始组中的剩余品种
countryGroup = df.groupby(['country', 'variety'])['price','points'].mean().round(2).rename(columns = {'price':'AvgPrice','points':'AvgPoints'})
countryVariety = df.groupby('country')['variety']
countryVariety = countryVariety.apply(lambda x:x.value_counts().nlargest(10))
实际结果是列出了每个国家的前10个品种。 但我需要的是平均价格和积分
下面是一些示例数据。对于这些需要大量数据的问题,生成随机测试数据非常有用,可以用几行代码完成:
解决这个问题的一种方法是
groupby
两次。第一个允许我们计算每个国家品种组的数量。第二个以.sort_values
+tail
保持每个国家前10名(基于规模)输出:
相关问题 更多 >
编程相关推荐