2016-12-01 8 views
3

私は、次のデータフレームを得:私は意味、System_num内の各番号のディス列の値(昇順)をソートしたいデータのソート

Dis  System_num Energy 
0 0.9   1  -2.3108 
1 0.7   1  11.8735 
2 1.2   1  -2.3408 
3 2.0   1  -0.3485 
4 2.0   2  -0.9379 
5 0.7   2  7.4776 
6 1.5   2  -2.2877 
7 0.9   2  -4.1789 
8 2.0   3  -3.6596 
9 1.0   3  -18.4582 
10 0.9   3  -16.2202 
11 0.7   3  16.6290 

を:

0 0.7   1  11.8735 
1 0.9   1  -2.3108 
2 1.2   1  -2.3408 
3 2.0   1  -0.3485 
4 0.7   2  7.4776 
5 0.9   2  -4.1789 
6 1.5   2  -2.2877 
7 2.0   2  -0.9379 
8 0.7   3  16.6290 
8 0.9   3  -16.2202 
10 1.0   3  -18.4582 
11 2.0   3  -3.6596 

答えて

1

使用

df.sort_values(['System_num', 'Dis']) 

によってソートする最初の列としてSystem_num

System_num

セットアップ

df = pd.DataFrame([ 
     [ 2. , 2. , -0.9379], 
     [ 0.7 , 2. , 7.4776], 
     [ 1.5 , 2. , -2.2877], 
     [ 0.9 , 2. , -4.1789], 
     [ 0.9 , 1. , -2.3108], 
     [ 0.7 , 1. , 11.8735], 
     [ 1.2 , 1. , -2.3408], 
     [ 2. , 1. , -0.3485], 
     [ 2. , 3. , -3.6596], 
     [ 1. , 3. , -18.4582], 
     [ 0.9 , 3. , -16.2202], 
     [ 0.7 , 3. , 16.629 ] 
    ], columns=['Dis', 'System_num', 'Energy']) 

df.groupby('System_num', sort=False) \ 
    .apply(pd.DataFrame.sort_values, by='Dis') \ 
    .reset_index(drop=True) 

enter image description here

+0

ありがとうソートせずにそれを行うための別の方法!とても役に立ちました! – Monica