2017-04-24 243 views
1

是否有任何图库根据一系列百分位绘制直方图?我一直在挖熊猫,但我没有看到任何可用的方法。我知道一个很长的解决方法,那就是手动计算我想要的每个百分点的出现次数。但我认为可能有更好的解决方案。按百分位数绘制直方图

目前我必须让个人计算

# Sample series 
tenth = df.col.quantile(0.1) 
twenty = df.col.quantile(0.2) 
twenty_count = len(twenty - tenth) 

等等......

然而,使用形容。我设法得到这个

df.describe(percentiles = [x/10.0 for x in range(1,11)] 
+0

鸿沟你能添加像'np.random.seed(10) DF = pd.DataFrame(np.random一些数据样本。 randint(10,size =(20,1)),columns = ['col']) print(df)'带有期望的输出?或者如果有帮助,请接受anser。谢谢。 – jezrael

回答

2

IIUC

df.col.rank(pct=True).hist() 

然而,这是一个坏主意。

考虑下面的数据帧df

df = pd.DataFrame(dict(
     col=np.random.randn(1000), 
     col2=np.random.rand(1000) 
    )) 

然后

df.col.rank(pct=True).hist() 

enter image description here

这是一个愚蠢的曲线图。

相反,由绝对值最大

(df/df.abs().max()).hist() 

enter image description here

+0

非常感谢 – aceminer