导入
字符串的切片与索引
学习如何使用 Pandas 对字符串执行切片和索引操作。
如何在字符串上使用索引
在本章中,我们将使用一个名为 staff.csv 的不同数据集。首先通过读取该文件来创建一个 DataFrame。
staff.csv
1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5print(f"\nStaff 数据框包含以下列:\n{list(staff.columns)}\n") 6 7print(staff)
文本数据是数据科学中的重要组成部分。某些领域需要大量处理文本数据,例如自然语言处理(NLP)。Pandas 库提供了多个用于处理文本数据的函数和方法,这些方法可以通过 str 访问器进行调用。我们将学习的第一个操作是字符串的索引使用。
...
文本数据是数据科学中的重要组成部分
字符串是由一系列字符组成的序列,因此每个字符都有对应的索引。我们可以利用这些索引来选取单个字符或字符串的一部分(切片)。例如,可以获取 name 列中每个字符串的第一个字母,如下所示:
1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5print(staff["name"].str[0])
字符串的索引为从零开始的整数。如果要对字符串进行切片,只需指定起始和结束索引即可。例如,我们可以提取 name 列中每个名字的前三个字母:
1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5print(staff["name"].str[0:3])
如果所需切片从第一个索引(即索引 0)开始,则可以省略起始索引。因此,下面这行代码与上述效果相同:
1staff["name"].str[:3]
需要注意的是,切片的右边界是不包含的。因此,[:3] 实际上表示索引 0、1 和 2 对应的字符。还可以使用从字符串末尾开始的负索引,此时索引从 -1 开始,依次为 -2、-3,依此类推。以下代码将返回 name 列中每个字符串的最后两个字符:
1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5print(staff["name"].str[-2:])
为了使切片和索引操作更加灵活,Pandas 还允许自定义步长。例如,我们可以创建一个从第二个字符(索引 1)开始、每隔一个字符取一个值的切片:
1import pandas as pd 2 3staff = pd.read_csv("staff.csv") 4 5print(staff["name"].str[1::2])
其结构如下:
1str[start : end : step size]
如果省略结束位置,则切片会一直延伸到字符串末尾。