Python计算分位数

  • 1、datafram使用quantile函数
  • 2、array使用percentile函数


  • pandas 和 numpy中都有计算分位数的方法,pandas中是quantile,numpy中是percentile
  • 两个方法其实没什么区别,用法上稍微不同,quantile的优点是与pandas中的groupby结合使用,可以分组之后取每个组的某分位数

1、datafram使用quantile函数

import pandas as pd
import numpy as np
data = pd.read_csv('order_rank_p_0409.txt',sep='\t')
#将data按id_1 和 id_2 分组
grouped=data.groupby(['id_1','id_2'])
#用quantile计算第40%的分位数
grouped['gmv'].quantile(0.4) 
#用to_csv生成文件
x.to_csv('order_ran_re.txt',sep= '\t')

2、array使用percentile函数

import pandas as pd
import numpy as np
data = pd.read_csv('order_rank_p_0409.txt',sep='\t')
a = array(data['gmv'])
np.percentile(a,0.4)