Python Pandas Series.str.rindex()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas str.rindex()方法用于搜索并返回一个系列中每个字符串的特定部分(在开始和结束之间)的子串的最高索引(从右边开始)。这个方法的工作方式与str.find()类似,但是在没有找到的情况下,str.rindex()不会返回-1,而是给出一个ValueError。
注意:此方法与str.index()不同,str.rindex()是用于反向搜索。如果子串在字符串中只存在一次,str.index()和str.rindex()的输出是一样的。
语法: Series.str.rindex(sub, start=0, end=None)
参数:
sub:要在系列文本值中搜索的字符串或字符
start:串联的文本值中要搜索的字符串或字符
end:要在系列文本值中搜索的字符串或字符
返回类型:系列,如果找到子串的最高索引。
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:当子串存在于每个字符串中时,寻找最高索引
在这个例子中,’e’作为子串被传递。由于’e’存在于所有5个字符串中,所以返回它出现的最高索引。index和rindex方法都被应用,输出结果被存储在不同的列中以进行比较。在应用任何操作之前,使用.dropna()方法将空行删除。
# importing pandas module
import pandas as pd
# reading csv file from url
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")
# dropping null value columns to avoid errors
data.dropna(inplace = True)
# extracting 5 rows
short_data = data.head().copy()
# calling str.index() method
short_data["Index Name"]= short_data["Name"].str.index("e")
# calling str.rindex() method
short_data["Reverse Index Name"]= short_data["Name"].str.rindex("e")
# display
short_data
输出:
如输出图片所示,可以比较出.index()方法返回的指数最小,而str.rindex()方法返回的指数最高。
示例 #2:
在这个例子中,’a’在前5行被搜索到。由于’a’不存在于每个字符串中,所以将返回错误值。为了处理错误,我们使用了try和except。
# importing pandas module
import pandas as pd
# reading csv file from url
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")
# dropping null value columns to avoid errors
data.dropna(inplace = True)
# extracting 5 rows
short_data = data.head().copy()
# calling str.rindex() method
try:
short_data["Index Name"]= short_data["Name"].str.rindex("a")
except Exception as err:
print(err)
# display
short_data
输出:
如输出图片所示,输出的数据框中没有索引名称列,并且打印出了 “substring not found “错误。这是因为str.rindex()在未找到时返回ValueError,因此它一定是进入了 except case 并打印了错误。