python - 正则表达式:仅提取数字直到第一个空格
问题描述
我有以下数据:
#1314515 22-09-2021
并且只需要提取数字而不是日期,如下所示:
1314515
已尝试以下正则表达式组合但不起作用:
[\s0-9]+
\s[0-9]+
请帮助正确组合。
解决方案
使用正则表达式和pd.Series.str.extract
:
df['col'] = df['col'].str.extract('(\d+)(?=\s)')
转换为整数:
df['col'] = df['col'].str.extract('(\d+)(?=\s)').astype(int)
解释。
推荐阅读
- python - 朴素的平铺矩阵乘法与 Python
- excel - 如何拉出任何值大于数字的单元格?
- python - MATLAB 和 Python 之间的共享工作区
- html - Android 消息能够在没有 OG:Image 的情况下显示来自网页的图像。它是如何做到这一点的?
- r - read_csv 导致 R 会话中止
- php - Laravel 6 在 belongsTo 关系上使用 with() 急切加载只是*有时*返回 null
- makefile - 不要在 Make 命令中解释为 Make 变量
- php - 为什么我会收到一个 PHP/PDOException 抱怨它无法建立 Postgres 连接,因为它找不到应用程序本地证书文件?
- python - 如何使用 python-telegram-bot 执行带有 markdown 的命令?
- django - 如何从具有多个 ForeignKey 和 ManytoManyField 字段的模型在 Django 中创建表单?