DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None) [source]
沿任一轴按values排序。
参数: | by: 要排序的名称或名称列表。 1) 如果axis是 那么by可能包含索引级别and/or列标签。 2) 如果axis是 那么by可能包含列级别and/or索引标签。 版本0.23.0中的更改:允许指定索引或列级名称。 axis : 要排序的轴(axis)。 ascending : 升序和降序排序。指定多个排序顺序的列表。 如果这是一个布尔的list,必须匹配的长度的by。 inplace : 如果为 kind : 默认为 选择排序算法。有关更多信息, 请参见
对于 仅在对单个列或标签进行排序时才应用此选项。 na_position : 如果首先将 最后将 ignore_index : 如果为 1.0.0版的新功能。 key: 在排序之前,将键函数应用于这些值。 这类似于内建函数中的 但值得注意的区别是此key函数应被向量化。 它应该期望Series并返回与输入形状相同的Series。 它将应用于by独立的每一列。 1.1.0版中的新功能。 |
返回值: | DataFrame或None 如果 |
例子
>>> 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],
... 'col4': ['a', 'B', 'c', 'D', 'e', 'F']
... })
>>> df
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F
按col1排序
>>> df.sort_values(by=['col1'])
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
5 C 4 3 F
4 D 7 2 e
3 NaN 8 4 D
按多列排序
>>> df.sort_values(by=['col1', 'col2'])
col1 col2 col3 col4
1 A 1 1 B
0 A 2 0 a
2 B 9 9 c
5 C 4 3 F
4 D 7 2 e
3 NaN 8 4 D
降序排列
>>> df.sort_values(by='col1', ascending=False)
col1 col2 col3 col4
4 D 7 2 e
5 C 4 3 F
2 B 9 9 c
0 A 2 0 a
1 A 1 1 B
3 NaN 8 4 D
将NA放在首位
>>> df.sort_values(by='col1', ascending=False, na_position='first')
col1 col2 col3 col4
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F
2 B 9 9 c
0 A 2 0 a
1 A 1 1 B
按键功能排序
>>> df.sort_values(by='col4', key=lambda col: col.str.lower())
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F