Как получить доступ к данным в выходном объекте re.findinter? - PullRequest
0 голосов
/ 04 января 2019

Я хотел бы получить доступ к данным «span» и «match» из объекта, который я сгенерировал с помощью regex.findinter. Но я не могу найти, как перенести структуру объекта в pandas df, чтобы мне было проще с ней работать.

Я могу перебрать объект для печати данных. Но в документации regex.findinter не сказано, как получить доступ к данным. Лучшее, что я могу найти, это страница https://docs.python.org/2.0/lib/match-objects.html

Я пытался просто добавить строки к панде df, но безуспешно. Смотрите код. Это дает ошибку: Ошибка типа: невозможно объединить объект типа ""; действительны только объекты pd.Series, pd.DataFrame и pd.Panel (не рекомендуется)

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)

Я бы хотел иметь dand с диапазоном и соответствием в качестве столбцов. Но мне не удается конвертировать типы, которые кажутся.

1 Ответ

0 голосов
/ 04 января 2019

Я только что нашел решение.Может быть не самый элегантный, но .... это работает.

for i in rez_mo:
    df.loc[len(df)]=[i.start()],[i.group()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...