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