【发布时间】:2019-11-20 11:36:56
【问题描述】:
我有一个 pandas 数据框 (df),代表不同个人的每月支出。数据框中的第一列指的是个人 ID,第二列指的是费用类别,第三列指的是花费的金额。见下表:
d = {'PersonID': ['A','A','A','A','A','A','A','A','B','B','B','B','B','B'], 'Category': ['Food','Food','Food','Food','Travel','Travel','Travel','Travel','Food','Food','Food','Travel','Travel','Travel'], 'Expenditure':[10,15,5,20,500,100,1000,2000,10,30,10,800,1000,400]}
df = pd.DataFrame(data=d)
对于每个人,我想得到食品类别中三个最大支出的总和,以及旅行类别中两个最大支出的总和。
对于上面的示例表,我想要下表:
我正在尝试使用以下代码,但问题是我无法在不同类别中指定不同的 N 最大费用。
df.groupby(['PersonID','Category'])['Expenditure'].nlargest(2).sum(level=0)
【问题讨论】:
标签: python pandas pandas-groupby