Python中获取Top 10数值及对应占比的实现求助
实现按Store分组的Top10 Size及占比计算
你可以在现有代码基础上,通过计算总Size并生成占比列来实现需求,修改后的完整代码如下:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 读取数据 df = pd.read_csv('train_feature_store.csv') # 按Store分组求和Size size_by_store = df[['Size','Store']].groupby(['Store'], as_index=False).sum() # 计算所有Store的Size总和 total_size = size_by_store['Size'].sum() # 新增占比列,保留两位小数 size_by_store['Percentage'] = round((size_by_store['Size'] / total_size) * 100, 2) # 按Size降序排序,取Top10 top10_stores = size_by_store.sort_values(by=['Size'], ascending=False).head(10) print(top10_stores)
代码说明:
- 先通过
groupby完成按Store分组求和Size的操作,得到每个Store的总Size - 用
size_by_store['Size'].sum()计算所有Store的Size总和,作为占比计算的分母 - 新增
Percentage列,通过(单店Size / 总Size) * 100得到百分比,并用round保留两位小数让结果更整洁 - 最后按Size降序排序后取前10行,得到包含Store、Size、Percentage的Top10结果
内容的提问来源于stack exchange,提问作者E L
相关产品推荐
相关产品推荐

