Python Pandas Series.str.index()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas str.index()方法用于搜索并返回一个系列中每个字符串的特定部分(在开始和结束之间)的子串的最低索引。这个方法的工作方式与str.find()类似,但是在没有找到的情况下,str.index()不会返回-1,而是给出一个ValueError。
语法: Series.str.index(sub, start=0, end=None)
参数:
sub: 要在系列文本值中搜索的字符串或字符
start: 要在系列文本值中搜索的字符串或字符
end: 要在系列文本值中搜索的字符串或字符
返回类型: 如果找到子串的最小索引,则为系列。
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:当子串存在于每个字符串中时寻找索引
在这个例子中,’e’作为子串被传递。由于’e’存在于所有5个字符串中,所以返回它出现的最小索引。在应用任何操作之前,使用.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")
# display
short_data
输出:
如输出图像所示,系列中’e’的最小索引被返回并存储在新列中。
示例 #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.index() method
try:
short_data["Index Name"]= short_data["Name"].str.index("a")
except Exception as err:
print(err)
# display
short_data
输出:
如输出图片所示,输出数据框中没有索引名称列,并且打印了 “substring not found “错误。这是因为str.index()在未找到时返回valueError,因此它一定是进入了 except case 并打印了错误。