首頁  >  文章  >  後端開發  >  如何將巢狀 JSON 讀入 Pandas DataFrame 並操作資料結構?

如何將巢狀 JSON 讀入 Pandas DataFrame 並操作資料結構?

Barbara Streisand
Barbara Streisand原創
2024-10-24 12:10:02400瀏覽

How to Read Nested JSON into a Pandas DataFrame and Manipulate Data Structures?

將巢狀JSON 讀取為Pandas DataFrame

要將包含巢狀物件的JSON 檔案讀取為Pandas DataFrame,您可以使用強大的json_normalize功能。此函數可讓您將巢狀資料結構展平為表格格式,更容易操作和分析資料。

將陣列擴展為列

您的範例 JSON 包含一系列位置。您可以將此數組擴展為單獨的列,以更好地了解數據,而不是將其保留為 JSON 列。 json_normalize 可以透過元參數來實現這一點。它指定哪些列應取消嵌套並作為常規列包含在 DataFrame 中。

<code class="python">import json

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

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

此程式碼將為從位置陣列衍生的 depTime 和 arrTime 附加資料列建立一個 DataFrame。

加入位置列

您提到您想要加入位置列。這可以使用以下程式碼完成:

<code class="python">df['locations'] = df.locations.apply(','.join)</code>

這會將位置連接成一個逗號分隔的字串。

處理多個JSON 物件

如果您的JSON 檔案包含多個JSON 物件(每行一個),您可以使用以下程式碼:

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

# Read the JSON file into a list of dictionaries
with open('myJson.json') as f:
    data = [json.loads(line) for line in f]

# Convert the list of dictionaries to a DataFrame
df = pd.DataFrame(data)</code>

然後您可以應用上述相同的技術來標準化和連接巢狀資料。

透過利用 json_normalize,您可以有效地讀取、展平和操作嵌套的 JSON 資料到 pandas DataFrame 中,從而增強您的資料分析能力。

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

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