如何对DataFrame各唯一国家分组执行带指定分位数的describe()方法
解决方案
你可以用pandas的groupby方法实现按country分组,对每个组的revenue列执行带自定义分位数的统计描述,具体代码如下:
先修正你代码里的列名问题:原DataFrame的列是小写的country和revenue,和你写的Country、net_revenue不匹配,得对应上避免报错。
import pandas as pd # 构造示例DataFrame data = { 'id': [1,2,3,4,5,6,7], 'revenue': [128,130,132,134,136,138,140], 'country': ['at','de','de','hu','at','at','hu'] } df = pd.DataFrame(data) # 定义需要的自定义分位数 custom_percentiles = [0.2, 0.4, 0.6, 0.8, 0.9, 0.95, 0.99, 0.999] # 分组执行带指定分位数的describe grouped_desc = df.groupby('country')['revenue'].describe(percentiles=custom_percentiles) print(grouped_desc)
代码说明:
groupby('country'):将DataFrame按country的所有唯一值分组,自动处理现有所有国家(比如示例里的at、de、hu)['revenue'].describe(percentiles=custom_percentiles):对每个分组的revenue列执行统计描述,并传入你指定的分位数参数- 返回的结果是一个多层列结构的DataFrame,索引为country,列包含count、mean、std、min、各分位数、max等统计量
如果觉得查看不方便,可以转置结果:
print(grouped_desc.T)
内容的提问来源于stack exchange,提问作者Lyuba Aleksova
相关产品推荐
相关产品推荐

