Python Pandas使用str.rsplit()将字符串反向分割成两个List/Column
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas提供了一种方法,可以围绕传递的分隔符或定界符来分割字符串。之后,字符串可以作为一个列表存储在一个系列中,或者也可以用来从一个单一的分离的字符串创建多列数据框架。rsplit()的工作方式类似于.split()方法,但是rsplit()从右侧开始分割。当分隔符/定界符出现不止一次时,这个函数也很有用。
在调用这个方法之前,每次都要把.str作为前缀,以区别于Python的默认函数,否则就会出现错误。
语法:
Series.str.rsplit(pat=None, n=-1, expand=False)
参数:
- pat:字符串值,分隔符或分界符,用于分隔字符串。
- n:在一个字符串中进行最大分离的数字,默认为-1,表示全部。
- expand:布尔值,如果为真,则返回一个在不同列中具有不同数值的数据框架。否则,它返回一个带有字符串列表的系列。
返回类型。列表系列或数据帧,取决于扩展 参数
在下面的例子中,使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:将字符串从右侧分割成列表
在这个例子中,Team列中的字符串在每一次出现 “t “时都会被分割。n参数保持为1,因此同一字符串中的最大分割数为1。由于使用了rsplit(),字符串将从右侧被分割。
# 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)
# new data frame with split value columns
data["Team"]= data["Team"].str.rsplit("t", n = 1, expand = False)
# display
data
输出:
如输出图片所示,该字符串在 “Celtics “的 “t “处和 “Boston “的 “t “处被分割。这是因为分离是以相反的顺序进行的。由于expand参数被保留为False,所以返回的是一个列表。
例子#2:使用.rsplit()从字符串中制作独立的列
在这个例子中,Name列用空格(””)分隔,expand参数被设置为True,这意味着它将返回一个数据框架,所有分隔的字符串都在不同的列中。然后,该数据框架被用来创建新的列,旧的Name列被使用.drop()方法删除。
n参数被保留为1,因为也可能有中间名(字符串中超过一个空白)。在这种情况下,rsplit()很有用,因为它从右边开始计算,因此中间名字的字符串将包括在第一个名字列中,因为最大的分隔数是保持1。
# 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)
# new data frame with split value columns
new = data["Name"].str.split(" ", n = 1, expand = True)
# making separate first name column from new data frame
data["First Name"]= new[0]
# making separate last name column from new data frame
data["Last Name"]= new[1]
# Dropping old Name columns
data.drop(columns =["Name"], inplace = True)
# df display
data
输出:
如输出图片所示,两个新的列被制作出来,旧的Name列被删除。