Python|熊猫系列.str.find()
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas str.find()方法用于搜索系列中每个字符串中的子字符串。如果找到该字符串,则返回其出现的最低索引。如果未找到字符串,它将返回 -1。
也可以传递起点和终点以在字符串的特定部分搜索传递的字符或子字符串。
Syntax: Series.str.find(sub, start=0, end=None)
Parameters:
sub: String or character to be searched in the text value in series
start: int value, start point of searching. Default is 0 which means from the beginning of string
end: int value, end point where the search needs to be stopped. Default is None.
Return type: Series with index position of substring occurrence
要下载代码中使用的 CSV,请单击此处。
在以下示例中,使用的数据框包含一些 NBA 球员的数据。下面附上任何操作之前的数据帧图像。
示例 #1:查找单个字符
在此示例中,使用 str.find() 方法在 Name 列的每个字符串中搜索单个字符“a”。开始和结束参数保持默认。返回的系列存储在一个新列中,以便可以通过直接查看来比较索引。在应用此方法之前,使用 .dropna() 删除空行以避免错误。
Python3
# 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)
# substring to be searched
sub ='a'
# creating and passing series to new column
data["Indexes"]= data["Name"].str.find(sub)
# display
data
Python3
# 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)
# substring to be searched
sub ='er'
# start var
start = 2
# creating and passing series to new column
data["Indexes"]= data["Name"].str.find(sub, start)
# display
data
输出:
如输出图像所示,Indexes 列中 index 的出现等于字符串中第一次出现字符的位置。如果文本中不存在子字符串,则返回 -1。通过查看第一行本身也可以看出,没有考虑“A”,这证明了这种方法是区分大小写的。
示例 #2:搜索子字符串(多个字符)
在此示例中,将在数据框的名称列中搜索“er”子字符串。 start 参数保留 2 以从第 3 个(索引位置 2)元素开始搜索。
Python3
# 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)
# substring to be searched
sub ='er'
# start var
start = 2
# creating and passing series to new column
data["Indexes"]= data["Name"].str.find(sub, start)
# display
data
输出:
如输出图像所示,返回子字符串出现次数最少的索引。但可以看出,在 Terry Rozier(数据帧中的第 9 行)的情况下,不是第一次出现 'er',而是返回了 10。这是因为 start 参数保持为 2,而第一个 'er' 出现在此之前。