Python Pandas Series.str.replace() 替换系列中的文本
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas 是其中一个包,它使导入和分析数据变得更加容易。Pandas Series.str.replace()方法的工作原理与Python的.replace()方法类似,但它也适用于Series。在对Pandas系列调用.replace()之前,.str必须有前缀,以便将其与Python的默认替换方法区分开。
语法: Series.str.replace(pat, repl, n=-1, case=None, regex=True)
**参数: **
pat:要替换的字符串或已编译好的regex
repl:要替换pat的字符串或可调用字符串
n:在单个字符串中进行替换的数量,默认为-1,表示全部。
case:取布尔值来决定大小写敏感性。如果是假的,则对大小写不敏感
regex: 布尔值,如果是真,则认为传递的模式是一个regex
返回类型:系列,包括被替换的文本值
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面附上任何操作之前的数据框的图片。
例子#1:
替换年龄列中的数值 在这个例子中,年龄列中所有数值为25.0的数值被替换为 “25”,使用str.replace()之后,创建一个过滤器,并在.where()方法中传递,只显示年龄=”25 “的行。
# 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")
# overwriting column with replaced value of age
data["Age"]= data["Age"].replace(25.0, "Twenty five")
# creating a filter for age column
# where age = "Twenty five"
filter = data["Age"]=="Twenty five"
# printing only filtered columns
data.where(filter).dropna()
输出:
如输出图片所示,Age列中所有年龄=25.0的值都被替换为 “25”。
例子#2:
大小写不敏感 在这个例子中,球队名称Boston Celtics被New Boston Celtics取代。在参数中,没有传递波士顿,而是传递波士顿(小写的’b’),并且大小写被设置为False,这意味着大小写不敏感。之后,只有拥有 “新波士顿凯尔特人 “队名的球队才会用.where()方法显示。
# 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")
# overwriting column with replaced value of age
data["Team"]= data["Team"].str.replace("boston", "New Boston", case = False)
# creating a filter for age column
# where age = "Twenty five"
filter = data["Team"]=="New Boston Celtics"
# printing only filtered columns
data.where(filter).dropna()
输出:
如输出图片所示,无论参数中传递的是什么小写字母,波士顿都被替换成了新波士顿。这是因为case参数被设置为False。