Python Pandas Series.str.startswith()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas startswith()是另一种在系列或数据框中搜索和过滤文本数据的方法。这个方法与Python的startswith()方法类似,但它有不同的参数,而且只对Pandas对象起作用。因此,每次在调用这个方法之前,都要把.str作为前缀,以便编译器知道它与默认函数不同。
语法: Series.str.startswith(pat, na=nan)
参数:
pat:要搜索的字符串。(不接受Regex)
na:用于设置如果系列中的值为NULL,应该显示什么。
返回类型: 布尔系列,如果该值在开始时有传递的字符串,则为真。
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:返回Bool系列
在这个例子中,使用str.startswith()函数检查大学列中的元素是否在字符串的开头有 “G”。一个布尔系列被返回,它在索引位置上是真实的,其中字符串的开头是 “G”。
# 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")
# String to be searched in start of string
search ="G"
# boolean series returned
data["College"].str.startswith(search)
输出:
如输出图像所示,布尔系列在学院列开始时有 “G “的索引位置有 “真”。也可以通过查看原始数据帧的图像来进行比较。
例子#2:处理NULL值
数据分析中最重要的部分是处理Null值。从上面的输出图片中可以看出,布尔系列的值为NaN,即学院列中的值为空或NaN。如果这个布尔系列被传递到数据框架中,它将会产生一个错误。因此,NaN值需要用na参数来处理。它也可以被设置为字符串,但由于布尔系列是用来传递和返回各自的值,它应该被设置为一个布尔值。
在这个例子中,na参数被设置为False。因此,只要College列有Null值,Bool系列就会存储False而不是NaN。之后,该系列被再次传递到数据框架中,只显示真值。
# 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")
# String to be searched in start of string
search ="G"
# boolean series returned with False at place of NaN
bool_series = data["College"].str.startswith(search, na = False)
# displaying filtered dataframe
data[bool_series]
输出:
如输出图片所示,数据框中的行在学院列中的字符串开头是 “G”。由于na参数被设置为False,所以不显示NaN值。