在pandas中,使用正则表达式可以很方便地将一个字符串分割成若干列,具体步骤如下:
- 读取需要处理的数据:可以使用pd.read_csv()方法读取数据,如果数据是从其他地方获取的,需要将数据转换成pandas DataFrame格式。
import pandas as pd
df = pd.read_csv('data.csv')
- 定义正则表达式:定义一个正则表达式来匹配需要分割的字符串,以及需要分割的方式。
例如:需要将一个以“-”分割的字符串“AAA-BBB-CCC”分割成三列,可以定义正则表达式为“-”,表示以“-”为分隔符分割字符串。
import re
pattern = '-'
- 使用正则表达式进行分割:使用pandas的str.split()方法来进行分割操作,其中参数“pat”表示需要匹配的正则表达式。
df[['col1', 'col2', 'col3']] = df['string'].str.split(pat=pattern, expand=True)
其中,"col1"、"col2"、"col3"表示新创建的三列,"string"表示待分割的字符串所在的列名,"expand=True"表示将分隔后的结果展开成若干列。
例如,对以下数据进行分割:
id | string |
---|---|
1 | AAA-BBB-CCC |
2 | DDD-EEE-FFF |
代码如下所示:
import pandas as pd
import re
df = pd.DataFrame({'id': [1, 2], 'string': ['AAA-BBB-CCC', 'DDD-EEE-FFF']})
pattern = '-'
df[['col1', 'col2', 'col3']] = df['string'].str.split(pat=pattern, expand=True)
print(df)
输出结果如下:
id string col1 col2 col3
0 1 AAA-BBB-CCC AAA BBB CCC
1 2 DDD-EEE-FFF DDD EEE FFF
- 处理分割后的结果:根据需要可以对分割后的结果进行进一步处理。
例如,可以将分割后的结果转换成数字类型:
df[['col1', 'col2', 'col3']] = df[['col1', 'col2', 'col3']].astype(int)
以上就是在pandas DataFrame中使用正则表达式将一个字符串分割成若干列的完整攻略,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在pandas DataFrame中使用regex将一个字符串分割成若干列 - Python技术站