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


Python Pandas DataFrame sort_index方法用法及代碼示例


Pandas 的 DataFrame.sort_index(~) 方法按列或索引標簽對源 DataFrame 進行排序。

參數

1.axis | stringint | optional

是否按索引或列標簽排序:

說明

0"index"

DataFrame 將按索引標簽排序。

1"columns"

DataFrame 將按列標簽排序。

默認情況下,axis=0

2. level | intstringlist<int>list<string> | optional

排序依據的級別。僅當您的 DataFrame 具有多索引時,這才有意義。

3. ascending | booleanlist<boolean> | optional

是否按升序或降序排序。默認情況下,ascending=True

4. inplace | boolean | optional

  • 如果是True,那麽源DataFrame將被直接修改,並且不會創建新的DataFrame。

  • 如果False,則將返回新的DataFrame,並且源DataFrame將保持不變。

默認情況下,inplace=False

5. kind | string | optional

使用的排序算法:

種類

速度

最壞的情況下

memory

穩定的

quicksort

1(快)

O(n^2)

0

no

mergesort

2

O(nlogn)

~n/2

yes

heapsort

3(慢)

O(nlogn)

0

no

默認情況下,kind="quicksort"

注意

排序算法是"stable"保留重複值的相對順序。例如,假設您正在對數組進行排序[(2,3), (2,1), (4,5)]由每個元組的第一個元素。我們這裏有一個重複值 2,穩定的排序算法確保(2,3)總會先來的(2,1)因為這就是它們最初的排序方式。不穩定的搜索不能保證保留此類順序。

6. na_position | string | optional

在哪裏放置 NaN 值:

說明

"first"

NaN 放在開頭。

"last"

NaN 放在末尾。

默認情況下,na_position="last"

7. sort_remaining | boolean | optional

如果True,那麽我們進一步按其他inner-levels的順序排序。這僅與 multi-level 索引相關。默認情況下,sort_remaining=True

8. ignore_index | boolean | optional

  • 如果 True ,則排序後的 DataFrame 的索引將為 0,1,...,n-1 ,其中 n 是 DataFrame 的行數。

  • 如果 False ,則索引名稱將保持原樣。

默認情況下,ignore_index=False

返回值

A DataFrame 按列或索引標簽排序。

例子

考慮以下 DataFrame :

df = pd.DataFrame({"B":[1,2,3],"C":[4,5,6],"A":[7,8,9]}, index=[2,0,1])
df



   B  C  A
2  1  4  7
0  2  5  8
1  3  6  9

按索引標簽排序

按索引標簽排序:

df.sort_index()



   B  C  A
0  2  5  8
1  3  6  9
2  1  4  7

按列標簽排序

要按列標簽排序,請設置 axis=1 ,如下所示:

df.sort_index(axis=1)



   A  B  C
2  7  1  4
0  8  2  5
1  9  3  6

這是我們的df,供您參考:

df



   B  C  A
2  1  4  7
0  2  5  8
1  3  6  9

按降序排序

默認情況下,標簽按升序排序。要按降序排序,請設置 ascending=False

df.sort_index(ascending=False)



   B  C  A
2  1  4  7
1  3  6  9
0  2  5  8

指定na_position

考慮以下 DataFrame :

df = pd.DataFrame({"A":[1,2,3]}, index=[2,1,np.NaN])
df



     A
2.0  1
1.0  2
NaN  3

默認情況下, na_position="last" ,這意味著索引為 NaN 的行 ( axis=0 ) 放置在末尾:

df.sort_index()   # na_position="last"



     A
1.0  2
2.0  1
NaN  3

要將索引為 NaN 的行放在開頭:

df.sort_index(na_position="first") 



     A
NaN  3
1.0  2
2.0  1

指定ignore_index

考慮以下 DataFrame :

df = pd.DataFrame({"A":[1,2,3]}, index=["b","a","c"])
df



   A
b  1
a  2
c  3

默認情況下, ignore_index=False ,這意味著保留索引名稱:

df.sort_index()



   A
a  2
b  1
c  3

通過設置 ignore_index=True ,索引名稱將重置為默認整數索引:

df.sort_index(ignore_index=True)



   A
0  2
1  1
2  3

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | sort_index method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。