Python| Pandas 使用 str.split() 将字符串拆分为两个列表/列
Pandas提供了一种在传递的分隔符/分隔符周围拆分字符串的方法。之后,该字符串可以存储为一系列列表,也可以用于从单个分隔字符串创建多个列数据框。
它的工作方式类似于 Python 的默认 split() 方法,但它只能应用于单个字符串。 Pandas >str.split()方法可以应用于整个系列。每次调用此方法之前都必须加上.str前缀,以将其与 Python 的默认函数区分开来,否则会引发错误。
Syntax: Series.str.split(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:将字符串拆分为列表
在此数据中,split函数用于在每个“t”处拆分 Team 列。该参数设置为 1,因此单个字符串中的最大分隔数将为 1。expand 参数为 False,这就是为什么返回包含字符串列表的序列而不是数据框的原因。
# 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.split("t", n = 1, expand = True)
# df display
data
输出:
如输出图像所示,Team 列现在有一个列表。字符串在第一次出现“t”时被分隔,而不是在后来出现时被分隔,因为 n 参数设置为 1(字符串中最多 1 次分隔)。
示例 #2:从字符串中创建单独的列
在此示例中,Name 列以空格(“”)分隔,expand 参数设置为 True,这意味着它将返回一个数据框,其中所有分隔的字符串位于不同的列中。然后使用 Data 框创建新列,并使用 .drop() 方法删除旧的 Name 列。
# 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
输出:
如输出图像所示,split()函数返回了一个新数据帧,它用于在数据帧中创建两个新列(名字和姓氏)。
新数据框
添加列的数据框