首頁  >  文章  >  後端開發  >  如何將巢狀 JSON 資料匯入並處理到 Pandas DataFrame 中?

如何將巢狀 JSON 資料匯入並處理到 Pandas DataFrame 中?

Linda Hamilton
Linda Hamilton原創
2024-10-24 11:40:02807瀏覽

How to Import and Process Nested JSON Data into Pandas DataFrames?

將巢狀JSON 檔案讀取為Pandas DataFrame

使用包含巢狀物件的JSON 資料時,可能需要將其轉換為更用於分析或操作的結構化格式。 Pandas 提供了有效處理此類數據的有用工具。

場景:

考慮具有以下結構的JSON 文件:

<code class="json">{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        { ... },
        { ... },
        { ... }
    ]
}</code>

使用json_normalize:

json_normalize 函數可讓您將巢狀的JSON 展平到DataFrame 中。對於給定的JSON,您可以執行以下操作:

<code class="python">import pandas as pd

with open('myJson.json') as data_file:    
    data = json.load(data_file)  

df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], 
                    record_prefix='locations_')
print (df)</code>

這將建立一個包含以下列的DataFrame:

擴充以保留巢狀資料:

如果您希望保持巢狀數組完整,可以將read_json 與解析參數一起使用。這會將 JSON 解析為 DataFrame,其中位置列作為字典列表。

<code class="python">df = pd.read_json("myJson.json", orient='records', parsing = True)</code>

或者,您可以使用建構子參數解析位置列:

<code class="python">df = pd.read_json("myJson.json", orient='records',
                  constructor=lambda x: pd.DataFrame(x['locations']))</code>

連接巢狀值:

如果要將位置列中的值連接成單一字串,可以使用groupby 和apply 函數:

<code class="python">df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>

以上是如何將巢狀 JSON 資料匯入並處理到 Pandas DataFrame 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn