簡體   English   中英

加載 Json 嵌套到 Dataframe Pandas

[英]Load Json Nested to Dataframe Pandas

stackoverflow,請幫助我。 我有這樣的 json file.json。

{"info":[
    {"name":"LYDIANA","address":[{"home":"San Francisco"},{"work":"Carolina"}],"emails":[],"phones":[{"work":"1234567"},{"home":"4323455"}]},
    {"name":"John Doe","address":[{"home":"Laguna"},{"work":"Ivory"}],"emails":[{"email":"john@gmail.com"},{"email":"doe@gmail.com"}],"phones":[{"work":"5435435"},{"work":"8678678"}]}
]}

如何創建這樣的數據框熊貓?

name        address                                 phones
LYDIANA     home: San Francisco | work: Carolina    1234567
LYDIANA     home: San Francisco | work: Carolina    4323455
John Doe    home: Laguna | work: Ivory              5435435
John Doe    home: Laguna | work: Ivory              8678678
import pandas as pd

dct = {"info":[
    {"name":"LYDIANA","address":[{"home":"San Francisco"},{"work":"Carolina"}],"emails":[],"phones":[{"work":"1234567"},{"home":"4323455"}]},
    {"name":"John Doe","address":[{"home":"Laguna"},{"work":"Ivory"}],"emails":[{"email":"john@gmail.com"},{"email":"doe@gmail.com"}],"phones":[{"work":"5435435"},{"work":"8678678"}]}
]}

all_data = []
for row in dct['info']:
    all_data.append({
            'name': row['name'],
            'address': ' | '.join('{}: {}'.format(k, v) for a in row['address'] for k, v in a.items()),
            'phones': [v for p in row['phones'] for v in p.values()]
        })

df = pd.DataFrame(all_data).explode('phones')
print(df)

印刷:

       name                               address   phones
0   LYDIANA  home: San Francisco | work: Carolina  1234567
0   LYDIANA  home: San Francisco | work: Carolina  4323455
1  John Doe            home: Laguna | work: Ivory  5435435
1  John Doe            home: Laguna | work: Ivory  8678678

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM