Python Pandas:根据指定分隔符及大写字母规则拆分字符串列

聖光之護
发布: 2025-10-08 11:03:26
原创
137人浏览过

python pandas:根据指定分隔符及大写字母规则拆分字符串列

本文介绍了如何使用 Python Pandas 库,根据包含大写字母的特定分隔符拆分字符串列。我们将探讨使用 str.extract 函数结合正则表达式来实现这一目标,并提供详细的代码示例和解释,帮助你理解和应用这种方法。

在数据处理中,经常会遇到需要根据特定规则拆分字符串列的情况。例如,我们需要根据最后一个分隔符,且该分隔符后面跟着全大写字母的字符串,将一列数据拆分成两列。Pandas 提供了强大的字符串处理功能,结合正则表达式可以灵活地实现这一需求。

下面我们通过一个具体的例子来说明如何实现这个功能。

示例数据

立即学习Python免费学习笔记(深入)”;

首先,我们创建一个 Pandas DataFrame,其中包含一个名为 Value 的列,该列包含需要拆分的字符串。

import pandas as pd

df = pd.DataFrame({
   'Value': ['Juan-Diva - HOLLS', 'Carlos - George - ESTE BAN - BOM', 'Javier Plain - Hotham Ham - ALPINE', 'Yul - KONJ KOL MON'],
   })

print(df)
登录后复制

输出结果:

                                Value
0                   Juan-Diva - HOLLS
1    Carlos - George - ESTE BAN - BOM
2  Javier Plain - Hotham Ham - ALPINE
3                  Yul - KONJ KOL MON
登录后复制

使用 str.extract 和正则表达式拆分列

为了实现我们的目标,我们将使用 str.extract 函数,并结合正则表达式来提取所需的内容。

析稿Ai写作
析稿Ai写作

科研人的高效工具:AI论文自动生成,十分钟万字,无限大纲规划写作思路。

析稿Ai写作 97
查看详情 析稿Ai写作
df[["First", "Last"]] = df["Value"].str.extract(r'(.*?)\s*-\s*([A-Z]+(?:\s*-?\s*[A-Z]+)*)$')

print(df)
登录后复制

输出结果:

                                Value                       First            Last
0                   Juan-Diva - HOLLS                  Juan-Diva           HOLLS
1    Carlos - George - ESTE BAN - BOM            Carlos - George  ESTE BAN - BOM
2  Javier Plain - Hotham Ham - ALPINE  Javier Plain - Hotham Ham          ALPINE
3                  Yul - KONJ KOL MON                        Yul    KONJ KOL MON
登录后复制

正则表达式解释

让我们详细解释一下使用的正则表达式:r'(.*?)\s*-\s*([A-Z]+(?:\s*-?\s*[A-Z]+)*)$'

  • (.*?): 匹配任何字符(除了换行符)零次或多次,但尽可能少地匹配(非贪婪模式)。这将匹配到第一个分隔符之前的字符串。
  • \s*-\s*: 匹配一个连字符 -,前后可以有零个或多个空白字符。
  • ([A-Z]+(?:\s*-?\s*[A-Z]+)*): 匹配由大写字母组成的字符串。
    • [A-Z]+: 匹配一个或多个大写字母。
    • (?:\s*-?\s*[A-Z]+)*: 一个非捕获组,匹配零个或多个由空白字符、可选的连字符和至少一个大写字母组成的序列。这允许匹配包含连字符和空格的大写字母组合。
  • $: 匹配字符串的结尾。

代码解释

df[["First", "Last"]] = df["Value"].str.extract(r'(.*?)\s*-\s*([A-Z]+(?:\s*-?\s*[A-Z]+)*)$') 这行代码使用 str.extract 函数将 Value 列中的字符串按照正则表达式进行拆分,并将结果分别赋值给新的 First 和 Last 列。

注意事项

  • 确保正则表达式能够准确匹配你的数据格式。根据实际情况调整正则表达式以适应不同的分隔符和字符串模式。
  • str.extract 函数返回的是 DataFrame,因此可以直接赋值给新的列。
  • 如果正则表达式没有匹配到任何内容,则相应的列将包含 NaN 值。

总结

本文介绍了如何使用 Pandas 的 str.extract 函数和正则表达式来根据包含大写字母的特定分隔符拆分字符串列。通过灵活运用正则表达式,我们可以轻松地处理各种复杂的字符串拆分需求。希望本文能够帮助你更好地理解和应用 Pandas 的字符串处理功能。

以上就是Python Pandas:根据指定分隔符及大写字母规则拆分字符串列的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号