DataFrame
と呼ばれるdata
列で呼ばれるパンダがありますms
。data.ms
95% パーセンタイルを超えるすべての行を削除したいと考えています。今のところ、私はこれをやっています:
limit = data.ms.describe(90)['95%']
valid_data = data[data['ms'] < limit]
これは機能しますが、それを任意のパーセンタイルに一般化したいと思います。それを行う最善の方法は何ですか?
DataFrame
と呼ばれるdata
列で呼ばれるパンダがありますms
。data.ms
95% パーセンタイルを超えるすべての行を削除したいと考えています。今のところ、私はこれをやっています:
limit = data.ms.describe(90)['95%']
valid_data = data[data['ms'] < limit]
これは機能しますが、それを任意のパーセンタイルに一般化したいと思います。それを行う最善の方法は何ですか?
numpy は、次のような場合に Pandas よりもはるかに高速です。
numpy.percentile(df.a,95) # attention : the percentile is given in percent (5 = 5%)
同等ですが、 よりも 3 倍高速です。
df.a.quantile(.95) # as you already noticed here it is ".95" not "95"
あなたのコードでは、次のようになります:
df[df.a < np.percentile(df.a,95)]