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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。