Python Pandas Index.asof()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas Index.asof()函数返回索引中的标签,如果不存在,则返回前一个索引的标签。假设索引是排序的,如果传递的索引标签在索引中,则返回传递的索引标签,如果传递的索引标签不在索引中,则返回前一个索引标签。
注意:该函数只适用于已排序的索引。如果没有排序,则返回错误。
语法: Index.asof(label)
参数 :
label :方法返回最新索引的标签。
返回 : 传递的标签,如果它在索引中。如果通过的标签不在排序的索引中,则为前一个标签,如果没有这样的标签,则为NaN。
例子#1:使用Index.asof()函数来返回最新的索引标签,直到传递的索引标签。
# importing pandas as pd
import pandas as pd
# Creating the Index
df = pd.Index([17, 69, 33, 15, 19, 74, 10, 5])
# Print the Index
df
输出 :
让我们先对索引标签进行排序
# sorting the index labels using the argsort() function
df = df[df.argsort()]
# Lets print the sorted index labels.
df
输出 :
现在我们将在索引中找到最新的标签,直到72。
# find the latest index label upto 72
df.asof(72)
输出 :
正如我们在输出中看到的,该函数已经返回了69,因为它是前一个索引标签,比72小。
例子#2:使用Index.asof()函数来查找截至给定日期的索引的标签。
# importing pandas as pd
import pandas as pd
# Creating the Index
idx = pd.Index(['2015-10-31', '2015-12-02', '2016-01-03',
'2016-02-08', '2017-05-05'])
# Print the Index
df
输出 :
索引已经在排序中了,所以我们将不对其进行排序。
现在我们将应用index.asof()函数来找到输入标签之前的索引标签。
# to find the label in the index upto '2016-01-01'
idx.asof('2016-01-01')
输出 :
正如我们在输出中所看到的,该函数返回了 “2015-12-02 “的日期,这是在索引中存在的前一个日期,直到 “2016-01-01″。