如何拆分DataFrame字符串单列并新增指定结构的多列
实现方案
核心思路
使用pandas内置的str.extract()方法配合正则表达式做精准分组匹配,比多次字符串拆分更稳定,不会因为消息内容中出现分隔符导致拆分错位。
完整代码示例
import pandas as pd # 假设你的原始DataFrame为df,唯一列的列名为raw_content # 下方示例数据可替换为你的真实数据 df = pd.DataFrame({ "raw_content": [ "08/04/2021, 17:19 - Rajat: Let's go", "10/05/2022, 09:05 - 138xxxx1234: 下午两点准时开会" ] }) # 正则分组匹配对应字段 extract_df = df["raw_content"].str.extract( r"(\d{2}/\d{2}/\d{4}), (\d{2}):(\d{2}) - ([^:]+): (.*)" ) # 重命名为目标列名 extract_df.columns = ["date", "hh", "mm", "username/phno", "message"] # 输出查看结果 print(extract_df)
说明
- 正则每个分组对应你需要的5个字段,顺序完全匹配:
- 第一组匹配
dd/mm/yyyy格式的日期 - 第二组匹配小时数值
- 第三组匹配分钟数值
- 第四组匹配第一个冒号前的用户名/手机号,自动过滤前后多余空格
- 第五组匹配后续所有内容作为消息,支持消息中出现冒号、分隔符等特殊字符
- 第一组匹配
- 如果你的日期格式为单数字(比如
8/4/2021),可以把正则里的\d{2}改成\d{1,2}适配
内容的提问来源于stack exchange,提问作者Aditya Kumar
相关产品推荐
相关产品推荐

