分组后如何检索其余数据帧并按该索引进行索引

时间:2019-10-16 06:31:26

标签: python pandas dataframe filtering

我有col的df:

 date         Account  invoice  category    sales
12-01-2019    123      123      exhaust     2200
13-01-2019    124      124      tyres       1300
15-01-2019    234      125      windscreen  4500
16-01-2019    123      134      gearbox     6000

我已经按客户和销售分组了

dfres = df.groupby(['Account'])({'sales': np.sum})

我收到了:

          sales
account
123       8200
124       3300

我现在想检索按分组的详细信息过滤的原始df,因此数据集减少了,但我现在的行数与原始数据相同,并且仅保留了销售额的前5%。如何删除不需要的帐户?

我尝试过:

index_list = res.index.tolist()
newdf = df[df.account.isin(index_list)]

非常感谢

1 个答案:

答案 0 :(得分:0)

如果您想保留剩余的列,您需要告诉 pandas 如何在分组后显示剩余的列。例如,如果您想将 invoicecategorydate 中的信息保留为构成该帐户总和的任何发票/猫/日期的列表,则:

dfres = df.groupby(['Account']).agg({'sales': np.sum, 'invoice':list, 'category':list, 'date':list})

enter image description here

然后您可以重置索引以将其恢复为平面数据框:

dfres.reset_index()

enter image description here