Разделение столбца на основе другого столбца - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть фрейм данных, который выглядит следующим образом

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)

Но хранить оба квинтильных ряда в одном столбце?

...