Python (Pandas) - 仅从字符串中获取出现在字符串最后部分的数字

问题描述 投票:0回答:1
import pandas as pd

mydata = {"Key" : [567, 568, 569, 570, 571, 572] , "Sprint" : ["Max1", "Max2", "DI001 2", "DI001 25", "DAS 100" , "DI001 101"]}

df = pd.DataFrame(mydata)
print (df)

从这个数据框“df”我想只分割出现在字符串最后部分的数字。字符串的分割不起作用,因为最后出现的位数不是预先定义的。最多可达 3 位数字。

预期输出:在“Sprint Number”列中,数据应如下所示。

python pandas string jira
1个回答
0
投票

这是一种带有

str.extract
的解决方案。

>>> import pandas as pd
>>> 
>>> mydata = {
...     "Key": [567, 568, 569, 570, 571, 572],
...     "Sprint": ["Max1", "Max2", "DI001 2", "DI001 25", "DAS 100", "DI001 101"],
... }
>>> df = pd.DataFrame(mydata)
>>> print(df)
   Key     Sprint
0  567       Max1
1  568       Max2
2  569    DI001 2
3  570   DI001 25
4  571    DAS 100
5  572  DI001 101
>>> df["Sprint Number"] = df.Sprint.str.extract(r"(?:\b)?(\d+)$")
>>> print(df)
   Key     Sprint Sprint Number
0  567       Max1             1
1  568       Max2             2
2  569    DI001 2             2
3  570   DI001 25            25
4  571    DAS 100           100
5  572  DI001 101           101
© www.soinside.com 2019 - 2024. All rights reserved.