pd.qcut
делает в точности то, что вы ищете:
In [37]: number["quantile"] = pd.qcut(number["Number to segement"], [0, .25, .75, 1], labels=["<25%", "25-75%", ">75%"])
In [38]: number
Out[38]:
Number to segement quantile
0 53 25-75%
1 85 25-75%
2 95 >75%
3 96 >75%
4 60 25-75%
5 37 25-75%
6 32 <25%
7 42 25-75%
8 50 25-75%
9 32 <25%
10 30 <25%
11 51 25-75%
12 88 >75%
13 76 25-75%
14 10 <25%
15 51 25-75%
16 97 >75%
17 1 <25%
18 23 <25%
19 87 >75%
Если вы не укажете аргумент метки, вместо него будут возвращены значения отсечения, если вы предпочитаете их видеть.