Pandas, veri manipülasyonu ve analizi için güçlü bir Python kütüphanesidir. Veriler sıklıkla JSON formatında gelir ve verimli işleme için Pandas DataFrame’ine dönüştürülmesi gerekir. Bu makale, bu dönüştürme için iki temel yöntemi: json_normalize()
ve read_json()
kullanmayı, güçlü ve zayıf yönlerini vurgulayarak ele almaktadır.
İçindekiler Tablosu
json_normalize()
ile İç İçe JSON’ların Verimli Bir Şekilde İşlenmesiread_json()
ile Basit JSON’ların Akıcı Bir Şekilde İşlenmesi
json_normalize()
ile İç İçe JSON’ların Verimli Bir Şekilde İşlenmesi
json_normalize()
fonksiyonu, iç içe geçmiş JSON yapılarıyla çalışırken mükemmeldir. Bu hiyerarşik verileri, Pandas DataFrame’leri için ideal olan tablo formatına dönüştürür. JSON yapınızın daha derin bir anlayışını gerektirse de, sonuçta elde edilen DataFrame üzerinde ayrıntılı kontrol sunar.
Bu örneği göz önünde bulundurun:
import pandas as pd
import json
json_data = """
[
{"id": 1, "name": "Alice", "address": {"street": "123 Main St", "city": "Anytown"}},
{"id": 2, "name": "Bob", "address": {"street": "456 Oak Ave", "city": "Otherville"}}
]
"""
data = json.loads(json_data)
df = pd.json_normalize(data, record_path=['address'], meta=['id', 'name'])
print(df)
Bu kod, JSON’ı yükler ve ardından json_normalize()
‘ı kullanır. record_path=['address']
, düzleştirme için iç içe geçmiş ‘address’ alanını belirtirken, meta=['id', 'name']
, ‘id’ ve ‘name’ öğelerini meta veri sütunları olarak ekler. Çıktı DataFrame’i ‘street’, ‘city’, ‘id’ ve ‘name’ sütunlarını içerecektir.
json_normalize()
‘ın Avantajları:
- İç içe geçmiş JSON’ları işler: Karmaşık, hiyerarşik JSON’lar için idealdir.
- Kontrollü düzleştirme: Dahil edilen alanlar ve düzleştirme üzerinde hassas kontrol sağlar.
json_normalize()
‘ın Dezavantajları:
- JSON yapısı bilgisi gereklidir: Etkili kullanım, JSON yapınızı anlamayı gerektirir.
- Derinlemesine iç içe geçmiş JSON’larla karmaşıklık: Son derece karmaşık yapılar zahmetli olabilir.
read_json()
ile Basit JSON’ların Akıcı Bir Şekilde İşlenmesi
read_json()
fonksiyonu, özellikle daha basit JSON yapıları için daha doğrudan bir yaklaşım sunar. JSON verilerini doğrudan bir Pandas DataFrame’ine okur ve genellikle daha basit JSON nesneleri için veya JSON dosyalarıyla çalışırken tercih edilir.
İşte bir örnek:
import pandas as pd
import json
json_data = """
[
{"id": 1, "name": "Alice", "age": 30},
{"id": 2, "name": "Bob", "age": 25}
]
"""
df = pd.read_json(json_data)
print(df)
Bu kod, JSON dizisini doğrudan DataFrame’e okur ve DataFrame sütunlarında JSON yapısını yansıtır.
read_json()
‘ın Avantajları:
- Basit ve sezgisel: Daha basit JSON yapıları için kullanımı kolaydır.
- Doğrudan JSON dosya işleme: Dosya yollarını kullanarak JSON verilerini dosyalardan verimli bir şekilde okur.
read_json()
‘ın Dezavantajları:
- Sınırlı iç içe geçmiş JSON işleme: Derinlemesine iç içe geçmiş JSON’larla mücadele edebilir, ön işleme gerektirebilir.
- Düzleştirme üzerinde daha az kontrol:
json_normalize()
ile karşılaştırıldığında, son DataFrame yapısı üzerinde daha az kontrol sunar.
Sonuç:
Hem json_normalize()
hem de read_json()
, JSON’ı Pandas DataFrame’lerine dönüştürmek için değerlidir. En iyi seçim, JSON’unuzun karmaşıklığına ve sonuçta elde edilen DataFrame üzerindeki istenen kontrole bağlıdır. Daha basit JSON’lar için read_json()
yeterlidir; iç içe geçmiş JSON’lar için json_normalize()
, kullanılabilir bir DataFrame oluşturmak için esneklik sağlar. Bu örnekleri çalıştırmadan önce pip install pandas
kullanarak pandas’ı yüklemeyi unutmayın.