【问题标题】:Python regular expression applied to listPython正则表达式应用于列表
【发布时间】:2018-02-24 06:17:14
【问题描述】:

我有一个 Excel 文件,我正试图从中提取信息,特别是从第 5 列(“摘要”)。 'Summary' 的每个元素都是一个字符串;我正在尝试查找提到的人的年龄。年龄信息将是“John Smith,23 岁”或“John Smith,23 岁”。第一行数据无效,所以我跳过了它。我无法弄清楚我做错了什么。我正在搜索 2 位数字,后跟逗号或破折号,然后尝试返回 2 位数字。 感谢您的帮助

import pandas as pd

mf=pd.ExcelFile(myFile)

m=mf.parse('myDataFile')

age = []
s = m['Summary']

for a in s[1:]:
    x = re.search('[0-9]{2}',a)
    y=x+1
    age.append(a[x,y])

【问题讨论】:

  • 试试这个网站来验证你的正则表达式:regex101.com
  • 您可以添加 2-3 示例输入行并显示完整的预期输出吗?我不清楚你希望y=x+1 做什么

标签: python regex dataframe


【解决方案1】:

我没有意识到正则表达式返回了一个“匹配”对象,而不是一个整数。我能够使用它来工作:

s=m['Summary']
age =[]
n=re.compile('\d\d(,|-)')

for t in s:
    x= re.search(n,t)
    if x:
        b=x.group(0)
        age.append(b[:2])
    else:
        age.append("NA")

【讨论】:

    猜你喜欢
    • 2019-07-04
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2010-09-12
    • 2011-08-06
    相关资源
    最近更新 更多