Bagaimana untuk Menguruskan Objek JSON Bersarang sebagai DataFrame dalam Pandas?

DDD
Lepaskan: 2024-10-24 14:07:02
asal
973 orang telah melayarinya

How to Manage Nested JSON Objects as a DataFrame in Pandas?

Membaca Nested JSON dengan Nested Objects sebagai Pandas DataFrame

Apabila berurusan dengan data JSON yang mengandungi objek bersarang, memanipulasinya dengan cekap dalam Python adalah penting . Pandas menyediakan alat yang berkuasa untuk mencapai ini - json_normalize.

Meluaskan Tatasusunan menjadi Lajur

Untuk mengembangkan tatasusunan lokasi ke dalam lajur yang berasingan, gunakan json_normalize seperti berikut:

<code class="python">import json
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>
Salin selepas log masuk

Ini akan mencipta bingkai data dengan lajur yang diperluas:

  locations_arrTime locations_arrTimeDiffMin locations_depTime  \
0                                                        06:32   
1             06:37                        1             06:40   
2             08:24                        1                     

  locations_depTimeDiffMin           locations_name locations_platform  \
0                        0  Spital am Pyhrn Bahnhof                  2   
1                        0  Windischgarsten Bahnhof                  2   
2                                    Linz/Donau Hbf               1A-B   

  locations_stationIdx locations_track number    name        date  
0                    0          R 3932         R 3932  01.10.2016  
1                    1                         R 3932  01.10.2016  
2                   22                         R 3932  01.10.2016 
Salin selepas log masuk

Mengendalikan Berbilang Objek JSON

Untuk fail JSON yang mengandungi berbilang objek, pendekatan bergantung pada struktur data yang dikehendaki.

Simpan Lajur Individu

Untuk menyimpan lajur individu (tarikh, nombor, nama, lokasi), gunakan yang berikut:

<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()

print(df)</code>
Salin selepas log masuk

Ini akan mengumpulkan data dan menggabungkan lokasi:

        date    name number                                          locations
0  2016-01-10  R 3932         Spital am Pyhrn Bahnhof,Windischgarsten Bahnho...
Salin selepas log masuk

Meratakan Struktur Data

Jika anda lebih suka struktur data yang diratakan, anda boleh gunakan json_normalize dengan tetapan berikut:

<code class="python">df = pd.read_json('myJson.json', orient='records', convert_dates=['date'])

print(df)</code>
Salin selepas log masuk

Ini akan mengeluarkan data dalam satu jadual:

  number    date                   name  ... locations.arrTimeDiffMin locations.depTimeDiffMin locations.platform
0             R 3932  2016-01-10  R 3932  ...                       0                         0                  2
1             R 3932  2016-01-10  R 3932  ...                       1                         0                  2
2             R 3932  2016-01-10  R 3932  ...                       1                         -                  1A-B
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Objek JSON Bersarang sebagai DataFrame dalam Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan