我可以将条件计数()添加到条件是组结果的groupby dataFrame



我有一个带有名称limitdata的两列数据框

CcyPair,TradeNotional  
USDCAD,1000000  
USDCAD,7600  
USDCAD,40000  
GBPUSD,100000  
GBPUSD,345000  
etc

每人CCYPAIR和Tradenotional的CCYPAIR。从这里我产生摘要统计信息如下

limitDataStats = limitData.groupby(['CcyPair']).describe()

这很容易。但是,我想向sumstats添加一列,其中包含传统的计数大于ccypair的75%由limitdatastats中存储的.deScribe((确定的75%。我已经搜索了很多,尝试了许多变体,但无法弄清楚。认为它应该沿着下面的路线(我认为我可以参考此处提到的Groupby的索引

limitData.groupby(['CcyPair'])['AbsBaseTrade'].apply(lambda x: x[x > limitDataStats.loc[x.index , '75%']].count())

有什么想法吗?谢谢,Colin

您可以过滤大于第75个百分位数,然后计算多少大于或等于该值(使用的.sum()(由于Boolean系列是从ge()返回(

limitData.groupby('CcyPair')['AbsBaseTrade'].apply(                      
                                    lambda x: x.ge(x.quantile(.75)).sum()))

最新更新