python 3のsort_values関数


まずこの関数は列をソートする、すなわちvaluesをソートする
ここでは複数の列について議論します
例を挙げる
df = pd.DataFrame({
 'col1' : ['A', 'A', 'B', np.nan, 'D', 'C'],
    'col2' : [2, 1, 9, 8, 7, 4],
   'col3': [0, 1, 9, 4, 2, 3],})
print(df)
出力は
  col1  col2  col3
0    A     2     0
1    A     1     1
2    B     9     9
3  NaN     8     4
4    D     7     2
5    C     4     3

sort_を利用するvalues 
df.sort_values(by=['col1'])
    col1 col2 col3
0   A    2    0
1   A    1    1
2   B    9    9
5   C    4    3
4   D    7    2
3   NaN  8    4

もし2つのvaluesが
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'col1' : [ 'A', 'E','A','A','A' ,'B', np.nan, 'D', 'C'],
    'col2' : [2, 1, 12, 23, 5,  9, 8, 7, 4],
    'col3':  [0, 11, 14, 18, 28, 9, 4, 2, 3],})
  col1  col2  col3
0    A     2     0
1    E     1    11
2    A    12    14
3    A    23    18
4    A     5    28
5    B     9     9
6  NaN     8     4
7    D     7     2
8    C     4     3
は、関数によって
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'col1' : [ 'A', 'E','A','A','A' ,'B', np.nan, 'D', 'C'],
    'col2' : [2, 1, 12, 23, 5,  9, 8, 7, 4],
    'col3':  [0, 11, 14, 18, 28, 9, 4, 2, 3],})
            
a=df.sort_values(by=['col1', 'col2'])
print(a)
  col1  col2  col3
0    A     2     0
4    A     5    28
2    A    12    14
3    A    23    18
5    B     9     9
8    C     4     3
7    D     7     2
1    E     1    11
6  NaN     8     4


この関数の意味は
私が先に通過します
by=['col1', 'col2']   col1    

撮り終わったらA B C D Eなど
そしてまたcol 1の撮り終えた順番でcol 2からここがA Bなら...E列完了Aの前提でcol 2すなわちA列col 2
Bはcol 2をEまで並べます