Как преобразовать строку с большим количеством списков в кадр данных? - PullRequest
0 голосов
/ 29 октября 2019

Я прочитал все два связанных вопроса и попробовал найти решение, но пока не нашел способа справиться с моим вопросом. Пожалуйста, дайте мне знать, если я что-то пропустил. Большое спасибо!

Мои данные, как показано ниже, это строка:

0              [Author(eid='XXXXXXXXXXXXXXXXX'
1                             surname='000000'
2                              initials='0000'
3                      givenname='00000000000'
4        affiliation='XXXXXXXXXXXXXXXXXXXXXXX'
5                               documents='44'
6                    affiliation_id='00000000'
7                             city='XXXXXXXXX'
8                      country='United States'
9                           areas='MATH (51)')
10             Author(eid='XXXXXXXXXXXXXXXXXX'
11                             surname='00000'
12                             initials='XXXX'
13                 givenname='000000000000000'
14     affiliation='XXXXXXXXXXXXXXXXXXXXXXXXX'
15                              documents='41'
16                 affiliation_id='XXXXXXXXXX'
17                          city='XXXXXXXXXXX'
18                   country='United States'.1
19     areas='MEDI (38); SOCI (20); NURS (8)')

Что я хочу сделать, это преобразовать их в кадр данных с именами столбцов в виде: ['eid »,« фамилия »,« инициалы »,« имя »,« принадлежность »,« документы »,« affiliation_id »,« город »,« страна »,« районы »]. Но когда я сохраняю его в фрейме данных, яс трудом сделать ярлыки именами столбцов. Мне интересно, кто-нибудь делал это раньше или есть мысли? Заранее большое спасибо.

[Изменить]: Ответьте на комментарий, я прочитал два других похожих вопроса здесь и попробовал следующее:

import re
result = {'col{0}'.format(i + 1): re.split(r'\s{1,}', x.strip()) for i, x in enumerate(DF_string.splitlines())}

Это дало мне что-то вроде:

{'col1': ['0'], 'col2': ['0', "[Author(eid='XXXXXXX'"], 'col3': ['1', "surname='000000'"], 'col4': ['2', "initials='XXX'"], 'col5': ['3', "givenname='XXX", "000'"], 'col6': ['4', "affiliation='XXX", 'of', "XXX'"], 'col7': ['5', "documents='44'"], 'col8': ['6', "affiliation_id='XXXX'"], 'col9': ['7', "city='XXXXX'"], 'col10': ['8', "country='United", "States'"], 'col11': ['9', "areas='MATH", "(51)')"], 

И тогда я попытался:

lines = [re.sub('\s+' , '__' , DF_string.strip() , 1) for line in DF_string.split('\n')]

Что дало мне это:

["0__0              [Author(eid='XXXXXXXXXXXXXXXXXXXXXXXXX'\n1                             surname='0000'\n2                              initials='XXXXXX'\n3                      givenname='XXXXX'\n4        affiliation='XXXXXXXXXXXXXXXXXXXXXXX'\n5                               documents='44'\n6                    affiliation_id='XXXXXXXXXXXX'\n7                             city='XXXXXXXX'\n8                      country='United States'\n9                           areas='MATH (51)')\n10       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...