2017-05-30 14 views
3

Ich arbeite an einem Datenrahmen in Python. Wie kann ich alle Zeilen angeben, die innerhalb einer bestimmten Spalte (ex q1, q2, q3, q4) Werte für eine bestimmte Spalte "rate" haben? Hier ist das Intervall der Bereich 'Rate', also ist [-0, 0.913056] der gesamte Bereich. Ich möchte angeben, dass der Wert von "Rate" in jeder Zeile in das Quantil des Bereichs fällt.Wie Quartil einer bestimmten Spalte in Pandas Datenrahmen angeben?

 name     rate 
0 3POWER ENERGY GROUP INC  -0.000000 
1 808 RENEWABLE ENERGY CORP -0.112192 
2 YORK WATER CO    0.774955 
3 ZTO EXPRESS (CAYM) INC -ADR 0.086352 
4 AEP GENERATING CO   0.850960 
5 AEP TEXAS CENTRAL CO   0.600301 
6 AIR T INC     0.254511 
7 ALABAMA GAS CORP    0.611631 
8 ALABAMA POWER CO    0.913056 
9 ALLEGIANT TRAVEL CO   0.227421 
10 COMCAST CORP     0.012037 
11 HAWAIIAN ELECTRIC CO   0.670980 
12 HAWAIIAN ELECTRIC INDS  0.775778 

df gefällt das.

name       rate  quartile 
0 3POWER ENERGY GROUP INC  -0.000000 q1 
1 808 RENEWABLE ENERGY CORP -0.112192 q1 
2 YORK WATER CO    0.774955 q3 
3 ZTO EXPRESS (CAYM) INC -ADR 0.086352 q1 
4 AEP GENERATING CO   0.850960 q4 
5 AEP TEXAS CENTRAL CO   0.600301 q3 
6 AIR T INC     0.254511 q2 
7 ALABAMA GAS CORP    0.611631 q3 
8 ALABAMA POWER CO    0.913056 q4 
9 ALLEGIANT TRAVEL CO   0.227421 q2 
10 COMCAST CORP     0.012037 q1 
11 HAWAIIAN ELECTRIC CO   0.670980 q4 
12 HAWAIIAN ELECTRIC INDS  0.775778 q4 

Antwort

4

Sie benötigen qcut:

df['quartile'] = pd.qcut(df['rate'], 4, ['q1','q2','q3','q4']) 
print (df) 
          name  rate quartile 
0  3POWER ENERGY GROUP INC -0.000000  q1 
1  808 RENEWABLE ENERGY CORP -0.112192  q1 
2     YORK WATER CO 0.774955  q3 
3 ZTO EXPRESS (CAYM) INC -ADR 0.086352  q1 
4    AEP GENERATING CO 0.850960  q4 
5   AEP TEXAS CENTRAL CO 0.600301  q2 
6      AIR T INC 0.254511  q2 
7    ALABAMA GAS CORP 0.611631  q3 
8    ALABAMA POWER CO 0.913056  q4 
9   ALLEGIANT TRAVEL CO 0.227421  q2 
10     COMCAST CORP 0.012037  q1 
11   HAWAIIAN ELECTRIC CO 0.670980  q3 
12  HAWAIIAN ELECTRIC INDS 0.775778  q4 
Verwandte Themen