Python| Pandas 使用 str.rsplit() 将字符串反向拆分为两个列表/列
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas 提供了一种在传递的分隔符或定界符周围拆分字符串的方法。之后,该字符串可以存储为一系列列表,也可以用于从单个分隔字符串创建多列数据框。 rsplit()
的工作方式与.split()
方法类似,但rsplit()
从右侧开始拆分。当分隔符/定界符出现多次时,此函数也很有用。
每次调用此方法之前都必须加上.str前缀,以将其与 Python 的默认函数区分开来,否则会报错。
Syntax:
Series.str.rsplit(pat=None, n=-1, expand=False)
Parameters:
pat: String value, separator or delimiter to separate string at.
n: Numbers of max separations to make in a single string, default is -1 which means all.
expand: Boolean value, returns a data frame with different value in different columns if True. Else it returns a series with list of strings
Return type: Series of list or Data frame depending on expand Parameter
要下载使用的 Csv 文件,请单击此处。
在以下示例中,使用的数据框包含一些 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,这意味着它将返回一个数据框,其中所有分隔的字符串位于不同的列中。然后使用 Data 框创建新列,并使用 .drop() 方法删除旧的 Name 列。
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 列。