Jak działa pandas to_json w języku Python? Przykład zastosowania

Jak działa pandas to_json w języku Python? Przykład zastosowania
„`html

Jak działa pandas to_json w języku Python? Przykład zastosowania

Python to język, który zyskał ogromną popularność w analizie danych, a biblioteka pandas jest jednym z jego najpotężniejszych narzędzi do manipulacji danymi. Gdy już mamy dane w pandas DataFrame, często zachodzi potrzeba ich zapisania w formacie JSON. Właśnie do tego służy metoda to_json(). W tym artykule przyjrzymy się jej działaniu i praktycznym przykładowym zastosowaniom.

Co robi pandas to_json?

Metoda to_json() w pandas konwertuje obiekt DataFrame lub Series na format JSON. Jest to szczególnie przydatne podczas przesyłania danych w aplikacjach internetowych, zapisu do pliku czy komunikacji z API.

Podstawowe użycie to_json()

Najprostszy sposób na użycie to_json() to konwersja DataFrame na tekstowy JSON:


import pandas as pd

# Tworzenie przykładowego DataFrame
data = {'Imię': ['Anna', 'Jan', 'Piotr'],
        'Wiek': [25, 30, 22]}

df = pd.DataFrame(data)

# Konwersja do JSON
json_data = df.to_json()
print(json_data)

Domyślnie to_json() zwraca JSON w formacie obiektów słownika (dict), gdzie klucze to indeksy kolumn.

Dostępne orientacje JSON

Metoda to_json() pozwala na określenie struktury JSON-a za pomocą parametru orient. Oto kilka dostępnych opcji:

Wartość orient Opis Przykład
split Dzielenie na indeks, kolumny i wartości {"columns": [...], "index": [...], "data": [[...], [...]]}
records Lista słowników, przydatna dla API [{"Imię": "Anna", "Wiek": 25}, {"Imię": "Jan", "Wiek": 30}]
index Słownik, gdzie klucze to indeksy {"0": {"Imię": "Anna", "Wiek": 25}, "1": {"Imię": "Jan", "Wiek": 30}}
columns Słownik, gdzie klucze to nazwy kolumn {"Imię": {"0": "Anna", "1": "Jan"}, "Wiek": {"0": 25, "1": 30}}

Przykłady zastosowania różnych orientacji

JSON jako lista rekordów

Jeśli chcemy otrzymać listę słowników, możemy użyć opcji records:


json_records = df.to_json(orient='records')
print(json_records)

Wynik:


[{"Imię": "Anna", "Wiek": 25}, {"Imię": "Jan", "Wiek": 30}, {"Imię": "Piotr", "Wiek": 22}]

JSON z kluczami jako indeksy

Użycie index powoduje, że kluczami w JSON-ie są indeksy DataFrame:


json_index = df.to_json(orient='index')
print(json_index)

Wynik:


{"0": {"Imię": "Anna", "Wiek": 25}, "1": {"Imię": "Jan", "Wiek": 30}, "2": {"Imię": "Piotr", "Wiek": 22}}

Zapis JSON do pliku

Jeśli chcemy zapisać dane do pliku JSON, możemy to zrobić w prosty sposób:


df.to_json("dane.json", orient="records", indent=4)

Dzięki temu plik dane.json zostanie zapisany w formacie JSON z wcięciami (przyjazny dla czytania).

Obsługa wartości NaN

Domyślnie pandas zapisuje wartości NaN jako null w JSON-ie. Możemy to jednak zmienić:


import numpy as np

df_with_nan = pd.DataFrame({'A': [1, np.nan, 3]})
json_na_as_null = df_with_nan.to_json()
json_na_as_string = df_with_nan.to_json(null_value='string')

print(json_na_as_null)  # {"A":{"0":1,"1":null,"2":3}}
print(json_na_as_string)  # {"A":{"0":1,"1":"string","2":3}}

Podsumowanie

Metoda to_json() w bibliotece pandas jest niezwykle elastyczna i przydatna przy eksporcie danych do formatu JSON. Dzięki różnym wartościom parametru orient możemy dostosować strukturę wyniku do naszych potrzeb. Warto również pamiętać o możliwościach obsługi wartości NaN oraz opcji zapisu do pliku.

„` Inny ciekawy artykuł: Jak działa pandas to_sql w języku Python? Przykład zastosowania
KajoDataSpace