按日期和前1%百分位数的总值分组

  • 本文关键字:百分 日期 python pandas
  • 更新时间 :
  • 英文 :

date        balance
2020-03-31   1000
2020-03-31    900
2020-03-31    800
2020-03-31    700
2020-03-31    200
2020-03-31    100
....
2020-03-31     20
2020-03-31      1
2020-03-31     0.3
....
2020-06-30   3420
2020-06-30   3000
2020-06-30   2000
....
2020-06-30     30
2020-06-30      3
....
2020-09-30  10000
2020-09-30   3000
..
2020-09-30      3

我想按日期和总值对属于最大1%百分位的人进行分组。我使用

book2  = book.groupby(['date'])['balance'].agg([lambda x : np.quantile(x, q=0.99), "sum"])

但这给了我一个奇怪的价值。。。知道怎么解决这个问题吗?谢谢

搜索前1%以上的所有值,然后对每个日期求和:

df.groupby('date')['balance'].apply(lambda x: x[x >= np.quantile(x, q=0.99)].sum())

最新更新