在本文中,我們將探索如何使用 pandas 有效地操作具有巢狀物件的 JSON 資料結構。
考慮以下JSON 結構:
<code class="json">{ "number": "", "date": "01.10.2016", "name": "R 3932", "locations": [ { "depTimeDiffMin": "0", "name": "Spital am Pyhrn Bahnhof", "arrTime": "", "depTime": "06:32", "platform": "2", "stationIdx": "0", "arrTimeDiffMin": "", "track": "R 3932" }, { "depTimeDiffMin": "0", "name": "Windischgarsten Bahnhof", "arrTime": "06:37", "depTime": "06:40", "platform": "2", "stationIdx": "1", "arrTimeDiffMin": "1", "track": "" }, { "depTimeDiffMin": "", "name": "Linz/Donau Hbf", "arrTime": "08:24", "depTime": "", "platform": "1A-B", "stationIdx": "22", "arrTimeDiffMin": "1", "track": "" } ] }</code>
pandas 嵌套的json_normalize 函數允許我們將巢狀的json_normalize 函數允許我們將巢狀的json_normalize 函數允許我們將巢狀的json_normalize 函數允許我們將巢狀的json_normalize 函數允許我們將嵌套物件扁平化為表格格式:
<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_')</code>
這會產生一個DataFrame,其中包含嵌套「位置」物件中每個鍵的欄位。
如果不需要扁平化,您可以使用Pandas 的分組和串聯功能:
<code class="python">df = pd.read_json("myJson.json") df.locations = pd.DataFrame(df.locations.values.tolist())['name'] df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>
此方法將「位置」值串聯為「日期」、「名稱」和「數字」的每個唯一組合的逗號分隔字串.
透過利用pandas 的json_normalize 和分組/串聯功能,我們可以有效地處理巢狀的JSON 結構,從而允許我們以表格格式提取和操作資料。
以上是Pandas 如何處理巢狀的 JSON 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!