
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.
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.