Python| Pandas Series.str.replace() 替换系列中的文本
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas是使导入和分析数据变得更加容易的软件包之一。 Pandas Series.str.replace()方法像Python一样工作 仅.replace()方法,但它也适用于 Series。在 Pandas 系列上调用 .replace() 之前,必须为.str添加前缀,以便将其与 Python 的默认替换方法区分开来。
Syntax: Series.str.replace(pat, repl, n=-1, case=None, regex=True) Parameters: pat: string or compiled regex to be replaced repl: string or callable to replace instead of pat n: Number of replacement to make in a single string, default is -1 which means All. case: Takes boolean value to decide case sensitivity. Make false for case insensitivity regex: Boolean value, if True assume that the passed pattern is a regex Return Type: Series with replaced text values
要下载代码中使用的 CSV,请单击此处。
在以下示例中,使用的数据框包含一些 NBA 球员的数据。下面附上任何操作之前的数据帧图像。
示例 #1:替换年龄列中的值 在此示例中,使用 str.replace() 将年龄列中所有值为 25.0 的值替换为“二十五”之后,创建一个过滤器并传入 .where() 方法只显示年龄=“二十五”的行。
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")
# 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()
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")
# 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()
输出:如输出图像所示,Age 列中年龄=25.0 的所有值都已替换为“二十五”。 示例 #2:不区分大小写 在此示例中,球队名称Boston Celtics被替换为New Boston Celtics 。在参数中,不是传递波士顿,而是传递波士顿(小写的'b')并且大小写设置为False,这意味着不区分大小写。之后,仅使用 .where() 方法显示球队名称为“New Boston Celtics”的球队。
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")
# 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()
输出:如输出图像所示,Boston 被 New Boston 替换,而与传入的参数中的小写字母无关。这是因为 case 参数设置为 False。