2016-12-07 16 views
0

私はパンダの時系列ts = pd.TimeSeries(np.random.normal(0, 1, 100))を持っており、最初のq-1分位のサンプルのみを選択したいと思います。パンダスq分位数のデータを選択

私は分数間隔をpd.qcut(ts, 10)で得ることができますが、最初の9分位数のサンプルのみをどのように選択できますか?

答えて

1

qcut()機能でlabels=Falseオプションを使用します。

ts = pd.DataFrame(pd.TimeSeries(np.random.normal(0, 1, 100))) 
ts[1] = pd.qcut(ts[0], 10, labels=False) 
ts.loc[ts[1] < 9] 
0

あなたは、整数であなたの分位にラベルをデータフレームにそれを参加して、選択するために、ブール式を書くことができ:

quantiles = pd.qcut(ts, 10, labels=range(10)) 
quantiles.name = 'quantiles' 
df = pd.DataFrame(ts).join(quantiles) 
df[df['quantiles'] < 9] 
0

pd.TimeSeriesは推奨されていません。ちょうど使用するpd.Series

ts = pd.Series(np.random.normal(0, 1, 100)) 
ts[pd.qcut(ts, 10, labels=False) < 9]