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

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

Jednym z najczęściej używanych formatów danych w Pythonie jest JSON (JavaScript Object Notation). Biblioteka Pandas oferuje wygodne narzędzie do pracy z danymi w tym formacie – funkcję read_json(). W tym artykule pokażę, jak działa pandas.read_json(), omówię jego parametry i zaprezentuję praktyczne przykłady.

Co to jest pandas.read_json()?

Funkcja pandas.read_json() służy do wczytywania danych zapisanych w formacie JSON do obiektu DataFrame. JSON jest popularnym formatem wymiany danych, często stosowanym w API, plikach konfiguracyjnych i bazach danych NoSQL.

Podstawowa składnia

Podstawowe wywołanie funkcji wygląda następująco:

import pandas as pd

df = pd.read_json("dane.json")

Funkcja read_json() może przyjmować zarówno ścieżkę do pliku JSON, jak i bezpośrednio ciąg znaków w tym formacie.

Parametry funkcji pandas.read_json()

Podczas pracy z JSON warto znać dodatkowe argumenty funkcji:

  • path_or_buf – ścieżka do pliku JSON lub obiekt typu string z danymi w formacie JSON.
  • orient – określa format wejściowy JSON, możliwe wartości:
    • "split" – JSON w formacie klucz-wartość (index, columns, data).
    • "records" – lista słowników (każdy wiersz jest osobnym słownikiem).
    • "index" – słownik, gdzie kluczem jest indeks, a wartością kolumna.
    • "columns" – klasyczny słownik kolumnowy.
    • "values" – tylko wartości w postaci listy list.
  • dtype – pozwala wymusić typ danych dla kolumn.
  • convert_dates – konwersja kolumn do typu daty.
  • encoding – ustawienie kodowania, np. "utf-8".

Przykłady zastosowania pandas.read_json()

Przyjrzyjmy się kilku przykładom praktycznym.

Wczytanie JSON zapisanego w pliku

df = pd.read_json("dane.json")
print(df.head())

Wczytanie JSON ze zmiennej jako string

import json

dane = '''[
    {"imie": "Jan", "wiek": 30, "miasto": "Warszawa"},
    {"imie": "Anna", "wiek": 25, "miasto": "Kraków"}
]'''

df = pd.read_json(dane)
print(df)

Użycie parametru orient

Załóżmy, że json ma strukturę records:

dane = '''{"dane": [
    {"imie": "Jan", "wiek": 30},
    {"imie": "Anna", "wiek": 25}
]}'''

df = pd.read_json(dane, orient="records")
print(df)

Parsowanie dat

Gdy mamy JSON zawierający daty, warto je skonwertować:

dane = '''[{"data": "2024-06-01", "wartosc": 100}, 
           {"data": "2024-06-02", "wartosc": 200}]'''

df = pd.read_json(dane, convert_dates=["data"])
print(df.dtypes)

Konwersja JSON do tabeli

Przekształcenie danych z JSON do czytelnej tabeli w Pandas pozwala na ich łatwą analizę. Oto przykładowy JSON:

[
    {"imie": "Jan", "wiek": 30, "miasto": "Warszawa"},
    {"imie": "Anna", "wiek": 25, "miasto": "Kraków"},
    {"imie": "Piotr", "wiek": 40, "miasto": "Gdańsk"}
]

Po wczytaniu do Pandas tabela wygląda tak:

imie wiek miasto
Jan 30 Warszawa
Anna 25 Kraków
Piotr 40 Gdańsk

Podsumowanie

Funkcja pandas.read_json() to potężne narzędzie do pracy z danymi w formacie JSON. Umożliwia łatwe wczytywanie plików i łańcuchów znaków JSON do DataFrame, oferując jednocześnie wiele opcji konwersji. Dzięki różnym wartościom parametru orient można dostosować sposób interpretacji struktury danych.

Znajomość tej funkcji pozwala na efektywne przetwarzanie danych z API, baz i plików konfiguracyjnych, co znacząco ułatwia pracę z danymi w języku Python.

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