Python 如何从字符串中提取数字(年份)?
我有样本字符串,我必须从熊猫数据框中提取年份。我不知道怎么做?我尝试使用正则表达式使用pandas提取方法,但没有成功 输入:Python 如何从字符串中提取数字(年份)?,python,regex,pandas,Python,Regex,Pandas,我有样本字符串,我必须从熊猫数据框中提取年份。我不知道怎么做?我尝试使用正则表达式使用pandas提取方法,但没有成功 输入: Césio 137 - O Pesadelo de Goiânia (1990) Nattbuss 807 (1997) Νόμος 4000 (1962) 输出: 1990 1997 1962 我已尝试使用以下正则表达式:\d\d\d 但是在表达式中,μος4000(1962),我没有得到我预期的结果。我只想提取1962,而不是4000 我的目标是从给出的
Césio 137 - O Pesadelo de Goiânia (1990)
Nattbuss 807 (1997)
Νόμος 4000 (1962)
输出:
1990
1997
1962
我已尝试使用以下正则表达式:\d\d\d
但是在表达式中,μος4000(1962)
,我没有得到我预期的结果。我只想提取1962
,而不是4000
我的目标是从给出的表达式中提取年份
提前感谢。这是一个非常简单的正则表达式
df = pd.read_csv(io.StringIO("""Césio 137 - O Pesadelo de Goiânia (1990)
Nattbuss 807 (1997)
Νόμος 4000 (1962)"""), names=["input"])
myre = re.compile(".*\(([0-9]+)\).*")
df.assign(output=df.input.str.extract(myre))
输出
输入
输出
0
塞西奥137-戈尼亚佩萨德罗(1990年)
1990
1.
纳特布斯807(1997)
1997
2.
Νόμος 4000 (1962)
1962
这将有助于:
strings = ["Césio 137 - O Pesadelo de Goiânia (1990)", "Nattbuss 807 (1997)", "Νόμος 4000 (1962)"]
for string in strings:
str = string.split(" ")
last = len(str) - 1
print(str[last].replace("(","").replace(")",""))
结果:
1990
1997
1962
请从下一页重复和。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了替换现有的文档和教程。询问教程参考资料或个人帮助在这里是离题的。请给出一个失败的例子。你也可以读我诚挚的道歉。我已经更新了我的问题。我将确保它不会被重复。从重复的
df['col'].str.extract('.*\(.*\).')
如果重复的答案有帮助,请务必对其进行投票。