Python Pandas使用str.split()将字符串分成两个List/Column
Pandas 提供了一种方法,可以围绕传递的分隔符/定界符分割字符串。之后,字符串可以作为一个列表存储在一个系列中,或者也可以用来从一个分离的字符串创建多列数据框架。它的工作原理类似于Python默认的split()方法,但它只能应用于单个字符串。Pandas str.split()方法可以应用于整个系列。每次在调用这个方法之前,必须把.str 作为前缀,以区别于Python的默认函数,否则,它将会产生一个错误。为了在google colab中工作,在使用数据集之前导入文件。
语法:
Series.str.split(pat=None, n=-1, expand=False)
参数:
- pat:字符串值,分隔符或分界符,用于分隔字符串。
- n:在一个字符串中进行最大分离的数字,默认为-1,表示全部。
- expand: 布尔值,如果为真,则返回一个在不同列中具有不同数值的数据框。否则,它返回一个带有字符串列表的系列。
返回类型:系列列表或数据框架,取决于扩展参数
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:
将字符串分割成列表 在这个数据中,分割函数被用来在每一个 “t “处分割团队列。参数被设置为1,因此,单个字符串中的最大分割数为1。扩展参数为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 = False)
# df display
data
输出: 如输出图片所示,团队列现在有一个列表。字符串在第一次出现 “t “的时候就被分开了,而在后来出现的时候就没有了,因为n参数被设置为1(一个字符串中最多有一个分隔)。
示例#2:
从字符串中制作独立的列 在这个例子中,Name列被空格(””)隔开,扩展参数被设置为True,这意味着它将返回一个数据框架,所有被隔开的字符串在不同的列中。然后,该数据框架被用来创建新的列,旧的Name列被使用.drop()方法删除。
# 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()函数返回了一个新的数据框,它被用来在数据框中创建两个新的列(名字和姓氏)。
新的数据框架