Преобразование упорядоченного словаря в новые столбцы в Python Pandas - PullRequest
0 голосов
/ 14 октября 2019

В моем фрейме данных некоторые столбцы представлены в формате OrderedDictionary. Как я могу преобразовать их в новые столбцы (не зная, какие столбцы содержат OrderedDictionary и элементы в OrderedDictionary)

Пример столбца:

inventors
[OrderedDict([('@sequence', '001'), ('@app-type', 'applicant'), ('@designation', 'us-only'), ('addressbook', OrderedDict([('last-name', 'Nahm'), ('first-name', 'Seung Hoon'), ('address', OrderedDict([('city', 'Daejeon'), ('country', 'KR')]))])), ('residence', OrderedDict([('country', 'KR')]))]), OrderedDict([('@sequence', '002'), ('@app-type', 'applicant'), ('@designation', 'us-only'), ('addressbook', OrderedDict([('last-name', 'Jang'), ('first-name', 'Hoon Sik'), ('address', OrderedDict([('city', 'Daegu'), ('country', 'KR')]))])), ('residence', OrderedDict([('country', 'KR')]))])]

Я хочу преобразовать его в следующий кадр данных (сделалне записывать все столбцы):

@sequence1  @app_type1   @designation1 @last_name1 @first_name1 ....
001         applicant    us_only        Nahm       Seung Hoon

В этом примере last_name и first_name происходят из другого вложенного словаря. И в данных, я не знаю, какие столбцы содержат OrderedDictonary, ради простоты, я просто включил один столбец из набора данных, который является изобретателями

1 Ответ

0 голосов
/ 15 октября 2019

Рассматривали ли вы функцию панд from_dict () ?

# Create example dict
import collections
inventors = collections.OrderedDict()
inventors['@sequence'] =  "001"
inventors['@app-type'] =  "applicant"
inventors['@designation'] =  "us-only"
inventors['last-name'] =  "Nahm"
inventors['first-name'] =  "Seung Hoon"

# Import pandas to use from_dict function
import pandas as pd

# Use from_dict() function; include orient='index' for now to avoid index error
df = pd.DataFrame.from_dict(inventors, orient='index')

# Transpose for final output
df.T

enter image description here

...