Dalam artikel ini, kami akan meneroka cara untuk memanipulasi struktur data JSON dengan objek bersarang menggunakan panda dengan berkesan.
Pertimbangkan struktur JSON berikut:
<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>
fungsi json_normalize panda membolehkan kami meratakan objek bersarang ke dalam format jadual :
<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>
Ini menghasilkan DataFrame dengan lajur untuk setiap kekunci dalam objek "lokasi" bersarang.
Jika perataan tidak diingini, anda boleh menggunakan keupayaan pengumpulan dan penggabungan Panda:
<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>
Pendekatan ini menggabungkan nilai "lokasi" sebagai rentetan yang dipisahkan koma untuk setiap gabungan unik "tarikh", "nama" dan "nombor" .
Dengan menggunakan ciri json_normalize dan pengelompokan/penggabungan panda, kami boleh mengendalikan struktur JSON bersarang dengan berkesan, membolehkan kami mengekstrak dan memanipulasi data dalam format jadual.
Atas ialah kandungan terperinci Bagaimanakah Panda Mengendalikan Objek JSON Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!