Pandas DataFrame.sort_values(~)
方法按列或行值對源 DataFrame 進行排序。
參數
1.by
| string
或 list<string>
要排序的列或行的名稱。
2. axis
| string
或 int
| optional
是否按行或列排序:
軸 |
說明 |
---|---|
|
DataFrame 將按列值排序。 |
|
DataFrame 將按行值排序。 |
默認情況下,axis=0
。
3. ascending
| boolean
或 list<booleans>
| optional
是否按升序或降序排序。默認情況下,ascending=True
。
4. inplace
| boolean
| optional
-
如果是
True
,那麽源DataFrame將被直接修改,並且不會創建新的DataFrame。 -
如果
False
,則將創建一個新的DataFrame,並且源DataFrame將保持不變。
默認情況下,inplace=False
。
5. kind
| string
| optional
使用的排序算法:
種類 |
速度 |
最壞的情況下 |
memory |
穩定的 |
---|---|---|---|---|
quicksort |
1(快) |
|
0 |
no |
mergesort |
2 |
|
~n/2 |
yes |
heapsort |
3(慢) |
|
0 |
no |
默認情況下,kind="quicksort"
。
注意
排序算法是"stable"保留重複值的相對順序。例如,假設您正在對數組進行排序[(2,3), (2,1), (4,5)]
由每個元組的第一個元素。我們這裏有一個重複值 2,穩定的排序算法確保(2,3)
總會先來的(2,1)
因為這就是它們最初的排序方式。不穩定的搜索不能保證保留此類順序。
6. na_position
| string
| optional
在哪裏放置 NaN
值:
值 |
說明 |
---|---|
|
將 |
|
將 |
默認情況下,na_position="last"
。
7. ignore_index
| boolean
| optional
-
如果
True
,則排序後的 DataFrame 的索引將為0,1,...,n-1
,其中n
是 DataFrame 的行數。 -
如果
False
,則索引名稱將保持原樣。
默認情況下,ignore_index=False
。
返回值
按行或列值排序的 DataFrame
。
例子
考慮以下 DataFrame :
df = pd.DataFrame({"A":[5,3,1,3],"B":["c","d","a","a"]})
df
A B
0 5 c
1 3 d
2 1 a
3 3 a
按列值排序
按列排序 A
:
df.sort_values("A")
A B
2 1 a
1 3 d
3 3 a
0 5 c
按多列排序
要按多列排序,請傳入列標簽列表:
df.sort_values(["A","B"])
A B
2 1 a
3 3 a
1 3 d
0 5 c
在這裏,行首先按列 A
中的值排序。當存在重複值時,我們按 B
列中的值進行排序。這就是在這種情況下值 "a"
保證位於 "d"
之前的原因。
按行值排序
考慮以下 DataFrame :
df = pd.DataFrame({"A":[5,9,4],"B":[1,3,2]}, index=["a","b","c"])
df
A B
a 5 1
b 9 3
c 4 2
要按行 "b"
中的值排序:
df.sort_values("b", axis=1)
B A
a 1 5
b 3 9
c 2 4
按降序排序
考慮以下 DataFrame :
df = pd.DataFrame({"A":[5,9,5],"B":[4,3,1]}, index=["a","b","c"])
df
A B
a 5 4
b 9 3
c 5 1
默認情況下,值按升序排序。要按降序排序,請設置 ascending=False
:
df.sort_values("A", ascending=False)
A B
b 9 3
a 5 4
c 5 1
傳遞布爾值數組
如果要按多列排序,則可以傳遞布爾值列表來指定每列應如何排序。
df.sort_values(["A","B"], ascending=[False, True])
A B
b 9 3
c 5 1
a 5 4
在這裏,我們按 A
列值降序排序,同時按 B
列升序排序。
指定na_position
考慮以下 DataFrame :
df = pd.DataFrame({"A":[pd.np.NaN,5,4]}, index=["a","b","c"])
df
A
a NaN
b 5.0
c 4.0
默認情況下, na_position="last"
,這意味著 NaN
放置在末尾:
df.sort_values(by="A") # na_position="last"
A
c 4.0
b 5.0
a NaN
要將 NaN
放在開頭:
df.sort_values(by="A", na_position="first")
A
a NaN
c 4.0
b 5.0
指定ignore_index
考慮以下 DataFrame :
df = pd.DataFrame({"A":[5,9,2]}, index=["a","b","c"])
df
A
a 5
b 9
c 2
默認情況下,保留索引名稱:
df.sort_values(by="A")
A
c 2
a 5
b 9
通過設置 ignore_index=True
,我們可以重置索引:
df.sort_values(by="A", ignore_index=True)
A
0 2
1 5
2 9
相關用法
- Python Pandas DataFrame sort_index方法用法及代碼示例
- Python PySpark DataFrame sort方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python PySpark DataFrame sampleBy方法用法及代碼示例
- Python Pandas DataFrame set_axis方法用法及代碼示例
- Python Pandas DataFrame select_dtypes方法用法及代碼示例
- Python PySpark DataFrame selectExpr方法用法及代碼示例
- Python PySpark DataFrame show方法用法及代碼示例
- Python PySpark DataFrame select方法用法及代碼示例
- Python Pandas DataFrame stack方法用法及代碼示例
- Python Pandas DataFrame shift方法用法及代碼示例
- Python Pandas DataFrame size屬性用法及代碼示例
- Python Pandas DataFrame set_index方法用法及代碼示例
- Python Pandas DataFrame swapaxes方法用法及代碼示例
- Python PySpark DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame sub方法用法及代碼示例
- Python Pandas DataFrame sem方法用法及代碼示例
- Python Pandas DataFrame sum方法用法及代碼示例
- Python Pandas DataFrame std方法用法及代碼示例
- Python PySpark DataFrame summary方法用法及代碼示例
- Python Pandas DataFrame shape屬性用法及代碼示例
- Python Pandas DataFrame slice_shift方法用法及代碼示例
- Python Pandas DataFrame squeeze方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | sort_values method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。