Python 如何在数据框中表示特定列的四分位?
我正在用python编写一个数据帧。 我如何在特定的四分位数(例如q1、q2、q3、q4)内指示具有特定列“rate”值的所有行?这里,区间是“速率”的范围,所以[-0,0.913056]是整个范围。我想指出每行中“rate”的值将落入范围的哪个分位数Python 如何在数据框中表示特定列的四分位?,python,python-3.x,pandas,dataframe,range,Python,Python 3.x,Pandas,Dataframe,Range,我正在用python编写一个数据帧。 我如何在特定的四分位数(例如q1、q2、q3、q4)内指示具有特定列“rate”值的所有行?这里,区间是“速率”的范围,所以[-0,0.913056]是整个范围。我想指出每行中“rate”的值将落入范围的哪个分位数 name rate 0 3POWER ENERGY GROUP INC -0.000000 1 808 RENEWABLE ENERGY CORP -0.112192 2
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
我喜欢这样
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
你需要:
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