当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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