Python 从列中的字符串中提取一组n个数字

Python 从列中的字符串中提取一组n个数字,python,pandas,Python,Pandas,我在pandas数据框中有一列字符串,其中包含以下内容:“AU/4347001”,但除此之外,还有一些组织较少的字符串,如“谁会想到这会如此困难” 所以最终,这些数字序列在字符串中出现的位置和方式没有一致的模式。他们可能是在开始,在中间,或在最后,没有办法确切地知道有多少其他字符围绕这些数字。 理想情况下,我希望返回另一个长度相等的列,其中只包含数字 这可能吗 非常感谢您的帮助 谢谢您您可以与数字捕获组一起使用(\d+): 输出

我在pandas数据框中有一列字符串,其中包含以下内容:
“AU/4347001”
,但除此之外,还有一些组织较少的字符串,如
“谁会想到这会如此困难”

所以最终,这些数字序列在字符串中出现的位置和方式没有一致的模式。他们可能是在开始,在中间,或在最后,没有办法确切地知道有多少其他字符围绕这些数字。 理想情况下,我希望返回另一个长度相等的列,其中只包含数字

这可能吗

非常感谢您的帮助

谢谢您

您可以与数字捕获组一起使用
(\d+)

输出

                                                 txt        res
0                                         AU/4347001    4347001
1  Who would have thought this would be so 434700...    4347009
2                          Another with a no numbers           
3                                          131242143  131242143
注意,在上面的示例中,使用来填充没有找到数字组的列,在本例中,使用空字符串。

您可以与数字捕获组一起使用
(\d+)

输出

                                                 txt        res
0                                         AU/4347001    4347001
1  Who would have thought this would be so 434700...    4347009
2                          Another with a no numbers           
3                                          131242143  131242143
注意,在上面的示例中,使用来填充没有找到数字组的列(在本例中为空字符串)。

您可以执行以下操作:

你可以做:


这是我们的测试数据帧:

###创建一个示例数据帧
df=pd.DataFrame(数据=['something123'、'somet456thing'、'789somthing',
'大量数字82849585构成一个长句'],列=['strings'])
###创建一个函数,用于识别、连接字符串,然后将其转换为整数
def get_编号(字符串):
返回int(“”.join([s表示字符串中的s,如果s.isdigit()]))
###现在让我们将get_numbers函数应用于strings列
df.loc[:,'strings\u wo\u numbers']=df.loc[:,'strings']应用(获取编号)

注意:这将连接字符串中的所有数字,即“10个橄榄和5个苹果”将变成105而不是10,5。这是我们的测试数据框:

###创建一个示例数据帧
df=pd.DataFrame(数据=['something123'、'somet456thing'、'789somthing',
'大量数字82849585构成一个长句'],列=['strings'])
###创建一个函数,用于识别、连接字符串,然后将其转换为整数
def get_编号(字符串):
返回int(“”.join([s表示字符串中的s,如果s.isdigit()]))
###现在让我们将get_numbers函数应用于strings列
df.loc[:,'strings\u wo\u numbers']=df.loc[:,'strings']应用(获取编号)

注意:这将连接字符串中的所有数字,即“10个橄榄和5个苹果”将变成105而不是10,5。使用
str.finall

df.text.str.findall('\d+').str[0]
0    4347009
1         24
Name: text, dtype: object

使用
str.finall

df.text.str.findall('\d+').str[0]
0    4347009
1         24
Name: text, dtype: object