Python | Pandas series.str.rindex()
原文:https://www.geesforgeks.org/python-pandas-series-str-rindex/
Python 是进行数据分析的优秀语言,主要是因为以数据为中心的 Python 包的奇妙生态系统。 【熊猫】 就是其中一个包,让导入和分析数据变得容易多了。
Pandas **str.rindex()**
方法用于搜索并返回序列中每个字符串的特定部分(开始和结束之间)的子字符串的最高索引(从右侧开始)。此方法的工作方式与[str.find()](https://www.geeksforgeeks.org/python-pandas-seres-str-find/)
类似,但在未找到的情况下,str.rindex()
不是返回-1,而是给出一个 ValueError。
注:该方法不同于 str.index()。str.rindex()用于反向搜索。如果子字符串在字符串中只存在一次,str.index()和 str.rindex()的输出相同。
语法: Series.str.rindex(sub,start=0,end=None)
参数: 子:要在系列文本值中搜索的字符串或字符 开始:要在系列文本值中搜索的字符串或字符 结束:要在系列文本值中搜索的字符串或字符
返回类型:找到子串索引最高的序列。
要下载下例使用的数据集,点击这里的。 在下面的例子中,使用的数据框包含了一些 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: 在此示例中,在前 5 行中搜索“a”。由于“a”不存在于每个字符串中,因此将返回值错误。若要处理错误,请尝试使用和 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
输出: 如输出图像所示,输出数据帧没有索引名称列,并且打印了错误“未找到子字符串”。这是因为 str.rindex()在未找到时返回 ValueError,因此它必须转到 except case 并打印错误。