У меня есть фрейм данных, который выглядит следующим образом
re_rank_df = pd.DataFrame({'RANK':[1,2,3,4,5,6,7,8,9,10],'BINARY':[1,0,1,0,1,0,1,0,1,0]})
RANK BINARY
0 1 1
1 2 0
2 3 1
3 4 0
4 5 1
5 6 0
6 7 1
7 8 0
8 9 1
9 10 0
Теперь я хотел бы переоценить свой столбец ранга, в этом примере, например, я хотел бы квинтили, где Binary column = 1, поэтому ядолжен получить что-то вроде
RANK BINARY
0 4 1
1 2 0
2 2 1
3 4 0
4 3 1
5 6 0
6 0 1
7 8 0
8 1 1
9 10 0
Я могу использовать это
re_rank_df['QUINTILE'] = pd.qcut(re_rank_df['RANK'], 5, labels=False).where(re_rank_df['BINARY'] == 1)
, что дает мне
RANK BINARY QUINTILE
0 1 1 0.0
1 2 0 NaN
2 3 1 1.0
3 4 0 NaN
4 5 1 2.0
5 6 0 NaN
6 7 1 3.0
7 8 0 NaN
8 9 1 4.0
9 10 0 NaN
Как насчет того, что я хочу сделать то же самое снова для двоичного= 0
re_rank_df['QUINTILE'] = pd.qcut(re_rank_df['RANK'], 5, labels=False).where(re_rank_df['BINARY'] == 0)
Но хранить оба квинтильных ряда в одном столбце?