Python Pandas Series.str.partition()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas str.partition()的工作方式与str.split()相似。它不是在分隔符/定界符的每次出现时都分割字符串,而是只在第一次出现时分割字符串。在split函数中,分隔符没有被存储在任何地方,只有它周围的文本被存储在一个新的列表/数据框中。但是在str.partition()方法中,分隔符也被存储。
.str每次在调用这个方法之前都要有前缀,以区别于Python的默认函数,否则,它将会抛出一个错误。
语法: Series.str.partition(pat=’ ‘, expand=True)
参数:
pat:字符串值,分隔符或分界符,用于分隔字符串。默认为”(空白)。
expand: 布尔值,如果为真,则返回一个在不同列中具有不同数值的数据框。否则,它返回一个带有字符串列表的系列。默认值为True。
返回类型: 列表系列或数据框架,取决于扩展参数
在下面的例子中,使用的数据框包含一些雇员的数据。下面是数据框在任何操作之前的图像。
例子 #1: 将字符串分割成列表
在这个例子中,Name列在第一次出现’, ‘时被分割。扩展参数保持为假,以便将其扩展为一个列表而不是数据框架。
# importing pandas module
import pandas as pd
# making data frame
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/chicago.csv")
# removing null values if any to avoid errors
data.dropna(how ='all', inplace = True)
# displaying top 5 rows of data
data.head()
# splitting at ', ' into list
data["Name"]= data["Name"].str.partition(", ", False)
# display
data
输出:
如输出图片所示,Name列在第一次出现’, ‘时被分割成了list。可以看出,’, ‘也被作为一个单独的元素存储在列表中。
注意:不要被列表中的两个逗号所迷惑,一个是元素,另一个是元素分隔符。
例子#2:将字符串分割成数据帧
在这个例子中,名字和姓氏被从名字列中分离出来,并存储在数据框架中的不同列中。
# importing pandas module
import pandas as pd
# making data frame
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/chicago.csv")
# removing null values if any to avoid errors
data.dropna(how ='all', inplace = True)
# displaying top 5 rows of data
data.head()
# splitting at ', ' into Data frame
new = data["Name"].str.partition(", ", True)
# making separate first name column from new data frame
data["First Name"]= new[2]
# making separate last name column from new data frame
data["Last Name"]= new[0]
# Dropping old Name columns
data.drop(columns =["Name"], inplace = True)
# df display
data
输出:
如输出图片所示,Name列被分离到一个有3个列的数据框中(其中一个是逗号前的字符串,另一个是逗号后的字符串)。之后,该数据框架被用来在同一数据框架中创建新的列。旧的Name列用.drop()方法被删除。
新的数据框架
添加了列的数据框架-