我有一個熊貓時間序列ts = pd.TimeSeries(np.random.normal(0, 1, 100))
,我想只選擇第一個q-1
分位數中的樣本。熊貓選擇q分位數據
我能夠得到分位數間隔:pd.qcut(ts, 10)
但我怎樣才能只選擇前9個分位數的樣本?
我有一個熊貓時間序列ts = pd.TimeSeries(np.random.normal(0, 1, 100))
,我想只選擇第一個q-1
分位數中的樣本。熊貓選擇q分位數據
我能夠得到分位數間隔:pd.qcut(ts, 10)
但我怎樣才能只選擇前9個分位數的樣本?
使用在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]
您可以用整數標記您的分位數,其加入到數據幀,寫一個布爾表達式來選擇:
quantiles = pd.qcut(ts, 10, labels=range(10))
quantiles.name = 'quantiles'
df = pd.DataFrame(ts).join(quantiles)
df[df['quantiles'] < 9]
pd.TimeSeries
已棄用。只需使用pd.Series
ts = pd.Series(np.random.normal(0, 1, 100))
ts[pd.qcut(ts, 10, labels=False) < 9]