我在组内应用 sort_values() 和 cumsum() 时遇到了问题。
我有一个数据集:
基本上,我需要对组内的值进行排序,获取累计销售额并选择那些占销售额 90% 的行。
获得第一
然后,只需选择每个区域内 90% 的销售额
我尝试了以下方法,但最后一行不起作用。我返回错误:无法访问“SeriesGroupBy”对象的可调用属性“sort_values”,请尝试使用“应用”方法
我也试过申请..
import pandas as pd
df = pd.DataFrame({'id':['id_1',
'id_2','id_3','id_4','id_5','id_6','id_7','id_8', 'id_1',
'id_2','id_3','id_4','id_5','id_6','id_7','id_8'],
'region':[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,],
'sales':[54,34,23,56,78,98,76,34,27,89,76,54,34,45,56,54]})
df['%']=df['sales']/df.groupby(df['region'])['sales'].transform('sum')
df['cumul'] = df.groupby(df['region'])['sales'].sort_values(ascending=False).cumsum()
一只甜甜圈
小怪兽爱吃肉
慕尼黑5688855
相关分类