Как использовать дециль вырезать из одних данных, чтобы вырезать другие данные? - PullRequest
0 голосов
/ 03 октября 2018

Я знаю, что мы можем использовать следующий код, чтобы создать столбец децилей, основанный на столбце заданного набора данных, учитывая, что в данных есть связь (см. Как сделать qcut с неуникальными ребрами бина? ):

import numpy as np
import pandas as pd

# create a sample
np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(100, 3), columns=list('ABC'))
# sort by column C
df = df.sort_values(['C'] , ascending = False )
# create decile by column C
df['decile'] = pd.qcut(df['C'].rank(method='first'), 10, labels=np.arange(10, 0, -1))

Существует ли простой способ сохранить точку вырезания из df, а затем использовать ту же точку вырезания для вырезания нового набора данных?Например:

np.random.seed([1])
df_new = pd.DataFrame(np.random.rand(100, 1), columns=list('C'))

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете использовать .left получить все bins

s1=pd.Series([1,2,3,4,5,6,7,8,9])
s2=pd.Series([2,3,4,6,1])

a=pd.qcut(s1,10).unique()

bins=[x.left for x in a ] + [np.inf]

pd.cut(s2,bins=bins)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...