0
我有CSV文件:如何從頻率表中計算百分位數?
fr id
1 10000152
1 10000212
1 10000847
1 10001018
2 10001052
2 10001246
14 10001908
...........
這是一個頻率表,其中id
是整型變量,而fr
是給定值的出現次數。文件按值按升序排列。 我想計算百分位數(即90%,80%,70%... 10%)的變量。
我在純Python做到了這一點,類似這樣的僞代碼:
bucket=sum(fr)/10.0
percentile=1
sum=0
for (current_fr, current_id) in zip(fr,id):
sum=sum+current_fr
if (sum > percentile*bucket):
print "%i percentile: %i" % (percentile*10,current_id)
percentile=percentile+1
但這種代碼是很原始:它沒有考慮到百分應值之間的距離設置,它可以不退步等
有沒有更優雅的,通用的,現成的解決方案?