![](/img/trans.png)
[英]How to get the last digit in each row in a number series in pandas
[英]How to extract a specific digit in each row of a pandas series containing text
我有一個pd.Series看起來如下
O some texts...final exam marks:50 next level:10 1 some texts....final exam marks he has got:54 next level:15 2 some texts...final marks ...some texts: 45 next best level:20
我想從該系列中提取那些數字50,54,45。 請注意,每行的文本中有多個數字。 我已經嘗試過正則表達式,但它不是只提供那些特定的數字,而是取出每一行中的所有數字。 基本上我想在“標記”這個詞后面加上數字。 任何幫助,將不勝感激。
ps我現在更新了這個問題。 我嘗試了這里給出的解決方案。 事實上,我嘗試過
pd.Series.str.findall('?<=specific text *(\\d{2})')
但得到並清空列表。 這里示例的表示與實際問題非常相似,因此我編輯了帖子。
許多人提前感謝。
嘗試
s.str.extract('.*marks:\s?(\d+)', expand = False)
0 50
1 54
2 45
隨着更新:
s.str.extract('.*marks.*?(\d+)', expand = False)
這個正則表達式考慮了在標記之后可能存在或不存在字符的事實
你得到
0 50
1 54
2 45
你需要看一下語法(?<=) ,它斷言所需的模式前面有另一個模式, (?<=marks:) *([0-9]+)
提取數字后面的數字:后跟可選的空格:
s
#0 some texts...final exam marks:50 next lev...
#1 some texts....final exam marks:54 next le...
#2 some texts...final marks: 45 next best le...
#Name: 1, dtype: object
s.str.extract("(?<=marks:) *([0-9]+)", expand=False)
#0 50
#1 54
#2 45
#Name: 1, dtype: object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.