如何访问re.findinter输出对象中的数据?

时间:2019-01-04 10:18:04

标签: python regex

我想从我用regex.findinter生成的对象访问“ span”和“ match”数据。但是我找不到如何将对象结构转换为pandas df的方法,因此我可以更轻松地对其进行操作。

我可以遍历对象以打印数据。但是regex.findinter文档没有说明如何访问数据。我能找到的最好的页面是https://docs.python.org/2.0/lib/match-objects.html

我尝试仅将行追加到熊猫df,但没有运气。参见代码。它给出了错误: TypeError:无法连接类型为“”的对象;仅pd.Series,pd.DataFrame和pd.Panel(已弃用)objs有效

import re
import pandas as pd


def find_rez(string):
    regex = re.compile(r'\s\d{10}\s')
    return(regex.finditer(string))

#open file with text data
file = open('prepaid_transactions_test2.txt')
text = file.read()

#get regex object with locations of all matches.
rez_mo = find_rez(text)

#Create empty df with span and match columns.
df = pd.DataFrame(columns=['span','match'])

#Append each row from object to pandas df. NOT WORKING.
for i in rez_mo:
    df.append(i)

我想拥有一个以range&match为列的pandas df。但是我无法转换看起来似乎的类型。

1 个答案:

答案 0 :(得分:0)

我刚刚找到了解决方案。可能不是最优雅,但是....有效。

for i in rez_mo:
    df.loc[len(df)]=[i.start()],[i.group()]