📜  Python| Pandas 使用 str.rsplit() 将字符串反向拆分为两个列表/列

📅  最后修改于: 2022-05-13 01:55:18.803000             🧑  作者: Mango

Python| Pandas 使用 str.rsplit() 将字符串反向拆分为两个列表/列

Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。

Pandas 提供了一种在传递的分隔符或定界符周围拆分字符串的方法。之后,该字符串可以存储为一系列列表,也可以用于从单个分隔字符串创建多列数据框。 rsplit()的工作方式与.split()方法类似,但rsplit()从右侧开始拆分。当分隔符/定界符出现多次时,此函数也很有用。

每次调用此方法之前都必须加上.str前缀,以将其与 Python 的默认函数区分开来,否则会报错。

要下载使用的 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 列。