python - 仅从 Python 系列中提取数字
问题描述
我有一个看起来像这样的系列:
ID
WTG-1
11
11-1
12B1
13-1
5
6
G7
.
.
我只是希望能够从每个ID
.
当我使用我的代码时:
df['ID'] = df['ID'].str.extract('(\d+)', expand=True)
它确实从行的前面提取所有内容,但如果存在字符串/字母/字符分隔符,则会跳过一个数字 - 即11-1
它只收集11
没有额外的 1。
我希望输出是:
ID ID #
WTG-1 1
11 11
11-1 111
12B1 121
13-1 131
5 5
6 6
G7 7
.
.
有没有办法计算中间的字符?
解决方案
使用findall
df.ID.str.findall('(\d+)').apply(''.join)
Out[92]:
0 1
1 11
2 111
3 121
4 131
5 5
6 6
7 7
Name: ID, dtype: object
推荐阅读
- c# - 关于eShopOnContainers api网关路由前缀的问题
- java - 如何将依赖项包含到 JAR 文件中(Maven)
- pivot - 在 Snowflake 中使用 Count Distinct 和 Pivot
- r - 如何在 R 包中包含和显示图像?
- postgresql - 仅选择唯一 ID 的最近日期
- pdo - 占位符在准备好的语句中不起作用
- javascript - 如何更改简单表单提交按钮以路由到另一个简单表单
- react-native - 如何使用 expo 上传多张图片?
- php - 将旧 Laravel 项目安装到最新服务器
- python - 如何在 python 数据框中创建计算列?