📅  最后修改于: 2023-12-03 15:33:24.414000             🧑  作者: Mango
在数据分析和处理中,经常需要将一个列按照一定的规则拆分成多个列,Pandas 的 str.split()
函数可以很方便地实现这个功能。
首先,我们需要导入 Pandas 包并读入数据:
import pandas as pd
data = pd.read_csv('<file_path>.csv')
str.split()
函数可以将一个列拆分成多个列,并将每个拆分后的值放在一个列表中。例如,在以下数据集中,我们将 Name
列按照空格拆分成姓和名两列:
data[['Last Name', 'First Name']] = data['Name'].str.split(' ', expand=True)
这里 expand=True
表示将每个拆分后的值放到新列中,如果为 False
则会将所有值合并为一个列。
如果要将一个列拆分成多个列,并将每个拆分后的值分别放在不同的列中,我们需要在函数中传递拆分后的列名列表。例如,以下数据集中,我们将 Address
列按照逗号和空格拆分成三列:
data[['Street', 'City', 'State']] = data['Address'].str.split(', ', expand=True)
如果要限制拆分后的数量,可以使用 n
参数。例如,在以下数据集中,我们将 Name
按照空格拆分为两列:
data[['First Name', 'Last Name']] = data['Name'].str.split(' ', n=1)
如果需要按照正则表达式进行拆分,可以通过传递正则表达式作为 pat
参数实现。例如,在以下数据集中,我们将 Name
按照第一个字母和空格进行拆分:
data[['First Initial', 'Last Name']] = data['Name'].str.split('(?<=^.).\s', expand=True)
正则表达式 (?<=^.).\s
表示匹配以任何字符开头并且后面跟着一个空格的字符串。(?<=^.)
表示这个字符串前面需要有一个字符,并且不将其包含在匹配结果中。
Pandas 的 str.split()
函数可以很方便地将一个列按照一定的规则拆分成多个列,并将拆分后的值放到新的列中。在进行数据清洗和处理时,这个函数是非常有用的。