當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pandas.Series.sort_values用法及代碼示例

用法:

Series.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

按值排序。

按某些標準按升序或降序對係列進行排序。

參數

axis{0 或 ‘index’},默認 0

軸直接排序。接受值 ‘index’ 是為了與 DataFrame.sort_values 兼容。

ascendingbool 或 bool 列表,默認為 True

如果為 True,則按升序對值進行排序,否則按降序排序。

inplace布爾值,默認為 False

如果為 True,則就地執行操作。

kind{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’},默認 ‘quicksort’

排序算法的選擇。另請參閱numpy.sort() 了解更多信息。 ‘mergesort’ and ‘stable’ 是唯一穩定的算法。

na_position{‘first’ or ‘last’},默認 ‘last’

參數 ‘first’ 將 NaN 放在開頭,‘last’ 將 NaN 放在末尾。

ignore_index布爾值,默認為 False

如果為 True,則生成的軸將標記為 0、1、...、n - 1。

key可調用的,可選的

如果不是無,則在排序前將鍵函數應用於序列值。這與內置sorted() 函數中的key 參數類似,但顯著的區別是該key 函數應該被矢量化。它應該期望 Series 並返回 array-like。

返回

係列或無

係列按值排序,如果 inplace=True 則為無。

例子

>>> 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

就地排序值

>>> s.sort_values(ascending=False, inplace=True)
>>> s
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

使用鍵函數進行排序。您的key 函數將被賦予Series 值,並應返回array-like。

>>> 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

可以使用更複雜的用戶定義函數,隻要它們期望一個係列並返回一個array-like

>>> s.sort_values(key=lambda x:(np.tan(x.cumsum())))
0   -4
3    2
4    4
1   -2
2    0
dtype:int64

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.sort_values。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。