gpt4 book ai didi

Python - 从包含文本的 pandas 系列中提取数字

转载 作者:行者123 更新时间:2023-12-01 02:55:00 25 4
gpt4 key购买 nike

这个问题有一个引用( here )。我对 Python 很陌生,因此陷入了一些琐碎的问题!我有一个数据系列如下

         Text
0 some texts...qualifications: BE year of passing 2012
1 MCOM from XYZ University in 2007. In 2009 he obtained his MBA
2 Academics: University / Board: XYZ University year of passing:2014

目标是提取上述年份(仅前几个),即2012,2007,2014。现在我的做法如下:

corpus = pd.Series('the above series')
corpus = corpus.str.replace(r'^[A-Za-z0-9]+')
corpus = corpus.str.lower()
if corpus.str.contains('qualifications').any():
corpus.str.extract('.*qualifications.*?(\d{4})', expand = False)
if corpus.str.contains('university').any():
corpus.str.extract('.*university. *?(d\{4})', expand=False)
if corpus.str.contains('academics').any():
corpus.str.extract('.*academics. *?(d\{4})',expand=False)

上述方法是创建一个空白系列。请帮助我解决这个问题。

最佳答案

我认为你可以将该表达式简化为:

代码:

corpus = corpus.str.lower().str.extract(
'(university|academics|qualifications).*?(\d{4})', expand=False)

测试代码:

corpus = pd.Series("""
some texts...qualifications: BE year of passing 2012
MCOM from XYZ University in 2007. In 2009 he obtained his MBA
Academics: University / Board: XYZ University year of passing:2014
""".split('\n')[1:-1], name='Text')

corpus = corpus.str.lower().str.extract(
'(university|academics|qualifications).*?(\d{4})', expand=False)

print(corpus)

结果:

                0     1
0 qualifications 2012
1 university 2007
2 academics 2014

关于Python - 从包含文本的 pandas 系列中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44297450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com