如何将 match.group() 文本放入 pandas 数据框中?
How to put match.group() text into a pandas dataframe?
我正在使用 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
如果您想添加到新的 DF,则:
你先在循环外发起一个新的DF:
new_df = pd.dataframe(columns=['match1','match4'])
在循环内:
row = [match.group(1), match.group(4)]
new_df.loc[len(new_df)] = row
如果是现有的DF - 在最后两行代码中将new_df替换为df
创建元组列表并传递给 DataFrame
构造函数:
out = []
for line in finalText.splitlines():
matches = re.finditer(pattern, line)
for matchNum, match in enumerate(matches, start=1):
out.append((match.group(1), match.group(4)))
df = pd.DataFrame(out, columns=['Water Usage','Town'])
print(df)
我正在使用 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
如果您想添加到新的 DF,则:
你先在循环外发起一个新的DF:
new_df = pd.dataframe(columns=['match1','match4'])
在循环内:
row = [match.group(1), match.group(4)]
new_df.loc[len(new_df)] = row
如果是现有的DF - 在最后两行代码中将new_df替换为df
创建元组列表并传递给 DataFrame
构造函数:
out = []
for line in finalText.splitlines():
matches = re.finditer(pattern, line)
for matchNum, match in enumerate(matches, start=1):
out.append((match.group(1), match.group(4)))
df = pd.DataFrame(out, columns=['Water Usage','Town'])
print(df)