將巢狀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中文網其他相關文章!