pandas.Series.sort_values # 系列。sort_values ( * , axis = 0 , ascending = True , inplace = False , kind = 'quicksort' , na_position = 'last' , ignore_index = False , key = None ) [来源] # 按值排序。 按某种标准按升序或降序对系列进行排序。 参数: 轴{0 或“索引”}没用过。与 DataFrame 兼容所需的参数。 升序布尔值或布尔值列表,默认 True如果为 True,则按升序对值排序,否则按降序排序。 inplace布尔值,默认 False如果为 True,则就地执行操作。 kind {'quicksort', 'mergesort', 'heapsort', 'stable'}, 默认 'quicksort'排序算法的选择。另请参阅numpy.sort()了解更多信息。 “mergesort”和“stable”是唯一稳定的算法。 na_position {'first' 或 'last'}, 默认 'last'参数“first”将 NaN 放在开头,“last”将 NaN 放在末尾。 ignore_index bool,默认 False如果为 True,则生成的轴将标记为 0、1、...、n - 1。 键可调用,可选如果不是“无”,则在排序之前将键函数应用于系列值。这与内置函数中的key参数类似sorted(),显着的区别是该key函数应该被向量化。它应该期望 a Series并返回一个类似数组的值。 返回: 系列或无系列按值排序,如果 则为“无” inplace=True。 也可以看看 Series.sort_index按系列索引排序。 DataFrame.sort_values按任一轴上的值对 DataFrame 进行排序。 DataFrame.sort_index按索引对 DataFrame 进行排序。 例子 >>> s = pd.Series([np.nan, 1, 3, 10, 5]) >>> s 0 NaN 1 1.0 2 3.0 3 10.0 4 5.0 dtype: float64 按升序对值进行排序(默认行为) >>> s.sort_values(ascending=True) 1 1.0 2 3.0 4 5.0 3 10.0 0 NaN dtype: float64 对值进行降序排序 >>> s.sort_values(ascending=False) 3 10.0 4 5.0 2 3.0 1 1.0 0 NaN dtype: float64 对值进行排序,将 NA 放在第一位 >>> s.sort_values(na_position='first') 0 NaN 1 1.0 2 3.0 4 5.0 3 10.0 dtype: float64 对一系列字符串进行排序 >>> s = pd.Series(['z', 'b', 'd', 'a', 'c']) >>> s 0 z 1 b 2 d 3 a 4 c dtype: object >>> s.sort_values() 3 a 1 b 4 c 2 d 0 z dtype: object 使用按键功能排序。您的关键函数将被赋予Seriesof 值,并且应该返回一个类似数组的值。 >>> s = pd.Series(['a', 'B', 'c', 'D', 'e']) >>> s.sort_values() 1 B 3 D 0 a 2 c 4 e dtype: object >>> s.sort_values(key=lambda x: x.str.lower()) 0 a 1 B 2 c 3 D 4 e dtype: object NumPy ufunc 在这里运行良好。例如,我们可以按sin值的大小排序 >>> s = pd.Series([-4, -2, 0, 2, 4]) >>> s.sort_values(key=np.sin) 1 -2 4 4 2 0 0 -4 3 2 dtype: int64 可以使用更复杂的用户定义函数,只要它们期望一个 Series 并返回一个类似数组的函数 >>> s.sort_values(key=lambda x: (np.tan(x.cumsum()))) 0 -4 3 2 4 4 1 -2 2 0 dtype: int64