python - 仅从 Python 系列中提取数字

标签 python regex string pandas dataframe

<分区>

我有一个看起来像这样的系列:

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

关于python - 仅从 Python 系列中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54185221/

相关文章:

python - 如何在 Matplotlib 中连接图形坐标?

python - 元素不可见异常 : Selenium Python

python - 如何验证字符串是否仅包含字母、数字、下划线和破折号?

c++ - 用于从 C++ 代码中提取函数的正则表达式

python - 我应该如何为一位/两位数字序列编写 python 正则表达式?

java - 循环列表以查找特定值

c# - 如何从 void 函数返回数据?

python - 导入错误 : DLL load failed when importing win32clipboard in application frozen with cx_Freeze

python - 使用和不使用 ':' 运算符删除 python 中的列表

java - 如何为 [[gold]] 或 [[Archimedes]] 等单词编写正则表达式