59

DataFrameと呼ばれるdata列で呼ばれるパンダがありますmsdata.ms95% パーセンタイルを超えるすべての行を削除したいと考えています。今のところ、私はこれをやっています:

limit = data.ms.describe(90)['95%']
valid_data = data[data['ms'] < limit]

これは機能しますが、それを任意のパーセンタイルに一般化したいと思います。それを行う最善の方法は何ですか?

4

3 に答える 3

40

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)]
于 2016-09-01T16:02:54.840 に答える