【发布时间】:2020-12-28 14:10:40
【问题描述】:
我正在使用 re 将一堆文本过滤为我需要的信息。我现在可以使用 match.group() 从文本中的每一行打印出我需要的两条信息。
match.group(1) 是一个数字,match.group(4) 是一个字符串。对于每一行(通过 for 循环进行迭代),我需要将 match.group(1) 添加到数据框中的一列,并将 match.group(4) 添加到另一列。
这里是代码(底部的打印语句需要替换为将每个元素添加到数据框的代码):
finalText = re.search(r'19\s+domestic and stock rights(.*?)20\s+native title rights', rawText, flags=re.S | re.I).group(
pattern = re.compile('(\d+)( ML/year )(in the |the )([\w \/\(\)]+)')
df = pd.DataFrame()
for line in finalText.splitlines():
matches = re.finditer(pattern, line)
for matchNum, match in enumerate(matches, start=1):
print (match.group(1) +","+ match.group(4))
和数学 match.group(1) 是一个数字,而 match.group(4) 是一个位置,因此数据框的示例如下:
Water Usage Town
55 York
718 Holst
7 Poke
【问题讨论】:
-
你能添加一些示例数据DataFrame吗?或者
rawText是什么? -
你怎么知道要添加到哪一行?
-
每行或每次迭代只需一个新行
-
rawText 是我使用 re 过滤的文本文件
-
可以添加输入数据吗?不输出,因为无法测试。