我有一个看起来像这样的数据框
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列= 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
我想对Binary = 0再次做同样的事情
re_rank_df['QUINTILE'] = pd.qcut(re_rank_df['RANK'], 5, labels=False).where(re_rank_df['BINARY'] == 0)
但是将两个五分之一系列存储在一列中吗?