Python Pandas Series.argsort()
Pandas系列是一个带有轴标签的一维ndarray。标签不需要是唯一的,但必须是一个可散列的类型。该对象支持基于整数和标签的索引,并提供了大量的方法来执行涉及索引的操作。
Pandas Series.argsort()函数返回将对给定系列对象的基础数据进行排序的指数。
语法: Series.argsort(axis=0, kind=’quicksort’, order=None)
参数:
axis :没有影响,但为了与numpy兼容而被接受。
kind: {‘mergesort’, ‘quicksort’, ‘heapsort’}, 默认为’quicksort’
order :没有影响,但为了与numpy兼容而被接受。
返回: argsorted:系列,在有nan值的地方表示-1
示例#1:使用Series.argsort()函数返回索引序列,该序列将对给定系列对象的基础数据进行排序。
# importing pandas as pd
import pandas as pd
# Creating the Series
sr = pd.Series([34, 5, 13, 32, 4, 15])
# Create the Index
index_ = ['Coca Cola', 'Sprite', 'Coke', 'Fanta', 'Dew', 'ThumbsUp']
# set the index
sr.index = index_
# Print the series
print(sr)
输出 :
Coca Cola 34
Sprite 5
Coke 13
Fanta 32
Dew 4
ThumbsUp 15
dtype: int64
现在我们将使用Series.argsort()函数来返回一个索引序列,它将对给定系列对象的基础数据进行排序。
# return the indices which will
# sort the series
result = sr.argsort()
# Print the result
print(result)
# Let's sort the series using the result
print(sr[result])
输出 :
Coca Cola 4
Sprite 1
Coke 2
Fanta 5
Dew 3
ThumbsUp 0
dtype: int64
Dew 4
Sprite 5
Coke 13
ThumbsUp 15
Fanta 32
Coca Cola 34
dtype: int64
正如我们在输出中所看到的,Series.argsort()函数已经成功地返回了一个包含索引的系列对象,这些索引将对给定的系列对象进行排序。
示例#2 :使用Series.argsort()函数返回索引序列,该序列将对给定系列对象的基础数据进行排序。
# importing pandas as pd
import pandas as pd
# Creating the Series
sr = pd.Series([11, 21, 8, 18, 65, 18, 32, 10, 5, 32, None])
# Create the Index
# apply yearly frequency
index_ = pd.date_range('2010-10-09 08:45', periods = 11, freq ='Y')
# set the index
sr.index = index_
# Print the series
print(sr)
输出 :
2010-12-31 08:45:00 11.0
2011-12-31 08:45:00 21.0
2012-12-31 08:45:00 8.0
2013-12-31 08:45:00 18.0
2014-12-31 08:45:00 65.0
2015-12-31 08:45:00 18.0
2016-12-31 08:45:00 32.0
2017-12-31 08:45:00 10.0
2018-12-31 08:45:00 5.0
2019-12-31 08:45:00 32.0
2020-12-31 08:45:00 NaN
Freq: A-DEC, dtype: float64
现在我们将使用Series.argsort()函数来返回一个索引序列,它将对给定系列对象的基础数据进行排序。
# return the indices which will
# sort the series
result = sr.argsort()
# Print the result
print(result)
# Let's sort the series using the result
print(sr[result])
输出 :
2010-12-31 08:45:00 8
2011-12-31 08:45:00 2
2012-12-31 08:45:00 7
2013-12-31 08:45:00 0
2014-12-31 08:45:00 3
2015-12-31 08:45:00 5
2016-12-31 08:45:00 1
2017-12-31 08:45:00 6
2018-12-31 08:45:00 9
2019-12-31 08:45:00 4
2020-12-31 08:45:00 -1
Freq: A-DEC, dtype: int64
2018-12-31 08:45:00 5.0
2012-12-31 08:45:00 8.0
2017-12-31 08:45:00 10.0
2010-12-31 08:45:00 11.0
2013-12-31 08:45:00 18.0
2015-12-31 08:45:00 18.0
2011-12-31 08:45:00 21.0
2016-12-31 08:45:00 32.0
2019-12-31 08:45:00 32.0
2014-12-31 08:45:00 65.0
2020-12-31 08:45:00 NaN
dtype: float64
正如我们在输出中所看到的,Series.argsort()函数已经成功地返回了一个包含索引的系列对象,这些索引将对给定的系列对象进行排序。请注意,该函数已返回-1作为缺失值的索引位置。