从Python系列中只提取数字

2024-09-30 16:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个系列,看起来像:

ID
WTG-1
11
11-1
12B1
13-1
5
6
G7
.
.

我只想能够从每个ID中提取所有的数字。在

当我使用我的代码时:

^{pr2}$

它确实从行的前面提取所有内容,但是如果有一个字符串/字母/字符分隔符-ie for 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
.
.

有没有一种方法可以计算中间的字符数?在


Tags: 方法字符串代码id内容for字母数字
3条回答

使用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

astypeapply可以做到。在

df["ID"] = df["ID"].apply(lambda x: "".join(c for c in x if c.isdigit()).astype(int)

或者更换

df['New_ID'] = df.ID.str.replace('\D+', '')

    ID      New_ID
0   WTG-1   1
1   11      11
2   11-1    111
3   12B1    121
4   13-1    131
5   5       5
6   6       6
7   G7      7

相关问题 更多 >