Pandas, Python için en popüler veri analizi kitaplığıdır. Veri analistleri, veri bilimcileri ve makine öğrenimi mühendisleri tarafından yaygın olarak kullanılır.
NumPy ile birlikte, veri ve yapay zeka ile çalışan herkesin bilmesi gereken kitaplıklardan ve araçlardan biridir.
Bu yazımızda Pandaları ve onu veri ekosisteminde bu kadar popüler yapan özelliklerini keşfedeceğiz.
Pandalar nedir?
Pandas, Python için bir veri analizi kitaplığıdır. Bu, Python kodunuzdaki verilerle çalışmak ve bunları değiştirmek için kullanıldığı anlamına gelir. Pandas ile verileri verimli bir şekilde okuyabilir, işleyebilir, görselleştirebilir, analiz edebilir ve depolayabilirsiniz.
‘Pandalar’ adı, zaman içinde birden fazla kişinin gözlemlenmesinden elde edilen verileri ifade eden bir ekonometri terimi olan Panel Data kelimelerinin birleşiminden gelir. Pandas ilk olarak Ocak 2008’de Wes Kinney tarafından piyasaya sürüldü ve o zamandan beri kullanım durumu açısından en popüler kitaplık haline geldi.
Pandas’ın kalbinde, aşina olmanız gereken iki temel veri yapısı vardır: Dataframes ve Series. Pandas’ta bir veri kümesi oluşturduğunuzda veya yüklediğinizde, bu iki veri yapısından biri olarak temsil edilir.
Bir sonraki bölümde, ne olduklarını, nasıl farklı olduklarını ve bunlardan herhangi birini ne zaman kullanmanın ideal olduğunu keşfedeceğiz.
Anahtar Veri Yapıları
Daha önce bahsedildiği gibi, Pandas’taki tüm veriler, Dataframe veya Series olmak üzere iki veri yapısından biri kullanılarak temsil edilir. Bu iki veri yapısı aşağıda ayrıntılı olarak açıklanmıştır.
Veri çerçevesi
Bu örnek veri çerçevesi, bu bölümün altındaki kod parçacığı kullanılarak üretilmiştir.
Pandas’ta bir Veri Çerçevesi, sütunları ve satırları olan iki boyutlu bir veri yapısıdır. Elektronik tablo uygulamanızdaki bir elektronik tabloya veya ilişkisel veritabanındaki bir tabloya benzer.
Sütunlardan oluşur ve her sütun, veri kümenizdeki bir niteliği veya özelliği temsil eder. Bu sütunlar daha sonra bireysel değerlerden oluşur. Bu tek tek değer listesi veya serisi, Series nesneleri olarak temsil edilir. Series veri yapısını bu makalenin ilerleyen kısımlarında daha ayrıntılı olarak tartışacağız.
Bir veri çerçevesindeki sütunlar, birbirlerinden ayırt edilebilmeleri için açıklayıcı adlara sahip olabilir. Bu adlar, veri çerçevesi oluşturulduğunda veya yüklendiğinde atanır, ancak herhangi bir zamanda kolayca yeniden adlandırılabilir.
Bir sütundaki değerlerin aynı veri türünde olması gerekir, ancak sütunların aynı türde veri tutması gerekmez. Bu, bir veri kümesindeki ad sütununun yalnızca dizeleri depolayacağı anlamına gelir. Ancak aynı veri kümesi, yaş gibi int’leri depolayan başka sütunlara sahip olabilir.
Veri çerçeveleri ayrıca satırlara başvurmak için kullanılan bir dizine sahiptir. Farklı sütunlardaki ancak aynı dizine sahip değerler bir satır oluşturur. Varsayılan olarak dizinler numaralandırılmıştır ancak veri kümesine uyacak şekilde yeniden atanabilir. Örnekte (yukarıda resim, aşağıda kodlanmıştır), indeks sütununu ‘aylar’ sütununa ayarlıyoruz.
import pandas as pd sales_df = pd.DataFrame({ 'Month': ['January', 'February', 'March'], 'Jane Doe': [5000, 6000, 5500], 'John Doe': [4500, 6700, 6000] }) sales_df.set_index(['Month'], inplace=True) print(sales_df)
Seri
Bu örnek Seri, bu bölümün altındaki kod kullanılarak üretilmiştir.
Daha önce tartışıldığı gibi, Pandas’ta bir veri sütununu temsil etmek için bir Seri kullanılır. Bu nedenle bir Seri, tek boyutlu bir veri yapısıdır. Bu, iki boyutlu bir Dataframe’in tersidir.
Bir Seri, bir Dataframe’de genellikle bir sütun olarak kullanılsa da, veri kümesinin tek bir sütuna kaydedilen yalnızca bir özniteliği olması koşuluyla, kendi başına eksiksiz bir veri kümesini de temsil edebilir. Daha doğrusu, veri kümesi basitçe bir değerler listesidir.
Bir Seri yalnızca bir sütun olduğundan, bir isme sahip olması gerekmez. Ancak, Serideki değerler indekslenir. Bir Veri Çerçevesinin dizini gibi, bir Serinin veri çerçevesi de varsayılan numaralandırmadan değiştirilebilir.
Örnekte (yukarıda gösterilen, aşağıda kodlanan), dizin bir Pandas Series nesnesinin set_axis yöntemi kullanılarak farklı aylara ayarlanmıştır.
import pandas as pd total_sales = pd.Series([9500, 12700, 11500]) months = ['January', 'February', 'March'] total_sales = total_sales.set_axis(months) print(total_sales)
Pandaların Özellikleri
Artık Pandas’ın ne olduğu ve kullandığı temel veri yapıları hakkında iyi bir fikriniz olduğuna göre, Pandas’ı bu kadar güçlü bir veri analizi kitaplığı yapan ve bunun sonucunda Veri Bilimi ve Makine Öğrenimi içinde inanılmaz derecede popüler olan özellikleri tartışmaya başlayabiliriz. Ekosistemler.
1 numara. Veri Manipülasyonu
Dataframe ve Series nesneleri değişkendir. Sütunları gerektiği gibi ekleyebilir veya kaldırabilirsiniz. Ayrıca Pandas, satır eklemenize ve hatta veri kümelerini birleştirmenize olanak tanır.
Verileri normalleştirme ve öğe bazında mantıksal karşılaştırmalar yapma gibi sayısal hesaplamalar yapabilirsiniz. Pandas ayrıca verileri gruplandırmanıza ve ortalama, ortalama, maksimum ve minimum gibi toplu işlevleri uygulamanıza olanak tanır. Bu, Pandalardaki verilerle çalışmayı çocuk oyuncağı haline getirir.
2 numara. Veri temizleme
Gerçek dünyadan elde edilen veriler genellikle çalışmayı zorlaştıran veya analiz veya makine öğrenimi modellerinde kullanım için ideal olmayan değerlere sahiptir. Veriler yanlış veri türünde, yanlış biçimde olabilir veya tamamen eksik olabilir. Her iki durumda da, bu verilerin kullanılmadan önce temizleme adı verilen bir ön işleme tabi tutulması gerekir.
Pandas, verilerinizi temizlemenize yardımcı olacak işlevlere sahiptir. Örneğin, Pandas’ta yinelenen satırları silebilir, sütunları veya eksik veri içeren satırları çıkarabilir ve değerleri varsayılan değerlerle veya sütunun ortalaması gibi başka bir değerle değiştirebilirsiniz. Daha fazla veri temizleme yapmanızı sağlamak için Pandalar ile çalışan daha fazla işlev ve kitaplık vardır.
#3. Veri goruntuleme
Bu grafik, bu bölümün altındaki kodla oluşturulmuştur.
Matplotlib gibi bir görselleştirme kütüphanesi olmasa da Pandas, temel veri görselleştirmeleri oluşturmak için işlevlere sahiptir. Ve basit olmalarına rağmen, çoğu durumda hala işi hallederler.
Pandas ile çubuk grafikleri, histogramları, dağılım matrislerini ve diğer farklı grafik türlerini kolayca çizebilirsiniz. Bunu Python’da yapabileceğiniz bazı veri manipülasyonlarıyla birleştirin ve verilerinizi daha iyi anlamak için daha da karmaşık görselleştirmeler oluşturabilirsiniz.
import pandas as pd sales_df = pd.DataFrame({ 'Month': ['January', 'February', 'March'], 'Jane Doe': [5000, 6000, 5500], 'John Doe': [4500, 6700, 6000] }) sales_df.set_index(['Month'], inplace=True) sales_df.plot.line()
#4. Zaman serisi analizi
Pandas, zaman damgalı verilerle çalışmayı da destekler. Pandas bir sütunun tarih-saat değerlerine sahip olduğunu tanıdığında, aynı sütun üzerinde zaman serisi verileriyle çalışırken yararlı olan birçok işlemi gerçekleştirebilirsiniz.
Bunlar, gözlemleri zaman periyoduna göre gruplandırmayı ve bunlara toplam veya ortalama gibi toplu işlevleri uygulamayı veya minimum ve maksimum kullanarak en erken veya en son gözlemleri almayı içerir. Elbette Pandas’ta zaman serisi verileriyle yapabileceğiniz daha birçok şey var.
# 5. Pandalarda Giriş/Çıkış
Pandas, en yaygın veri depolama biçimlerinden veri okuma yeteneğine sahiptir. Bunlar JSON, SQL Dökümleri ve CSV’leri içerir. Ayrıca bu biçimlerin çoğundaki dosyalara veri yazabilirsiniz.
Farklı veri dosyası formatlarından okuma ve bu formatlara yazma yeteneği, Pandaların diğer uygulamalarla sorunsuz bir şekilde birlikte çalışmasına ve Pandalar ile iyi entegre olan veri boru hatları oluşturmasına olanak tanır. Pandas’ın birçok geliştirici tarafından yaygın olarak kullanılmasının nedenlerinden biri de budur.
#6. Diğer Kütüphanelerle Entegrasyon
Pandas ayrıca, işlevselliğini tamamlamak için üzerine inşa edilmiş zengin bir araç ve kitaplık ekosistemine sahiptir. Bu, onu daha da güçlü ve kullanışlı bir kitaplık yapar.
Pandas ekosistemindeki araçlar, veri temizleme, görselleştirme, makine öğrenimi, giriş/çıkış ve paralelleştirme dahil olmak üzere farklı alanlarda işlevselliğini geliştirir. Pandas, belgelerinde bu tür araçların kaydını tutar.
Pandalarda Performans ve Verimlilik Hususları
Pandalar çoğu operasyonda parlarken, herkesin bildiği gibi yavaş olabilir. İyi yanı, kodunuzu optimize edebilmeniz ve hızını artırabilmenizdir. Bunu yapmak için Pandaların nasıl inşa edildiğini anlamalısınız.
Pandas, sayısal ve bilimsel hesaplama için popüler bir Python kitaplığı olan NumPy üzerine kurulmuştur. Bu nedenle, NumPy gibi Pandas, döngüler kullanılarak tek tek hücreleri veya satırları seçmek yerine işlemler vektörleştirildiğinde daha verimli çalışır.
Vektörleştirme, aynı işlemin aynı anda birden çok veri noktasına uygulandığı bir paralelleştirme biçimidir. Buna SIMD – Tek Komut, Çoklu Veri denir. Vektörleştirilmiş işlemlerden yararlanmak, Pandaların hızını ve performansını önemli ölçüde artıracaktır.
Başlık altında NumPy dizilerini kullandıkları için DataFrame ve Series veri yapıları, alternatif sözlük ve listelerinden daha hızlıdır.
Varsayılan Pandas uygulaması yalnızca bir CPU çekirdeği üzerinde çalışır. Kodunuzu hızlandırmanın başka bir yolu da, Pandaların mevcut tüm CPU çekirdeklerini kullanmasını sağlayan kitaplıkları kullanmaktır. Bunlar Dask, Vaex, Modin ve IPython’u içerir.
Topluluk ve Kaynaklar
En popüler programlama dilinin popüler bir kütüphanesi olan Pandas, geniş bir kullanıcı ve katkıda bulunan topluluğuna sahiptir. Sonuç olarak, nasıl kullanılacağını öğrenmek için kullanılabilecek birçok kaynak vardır. Bunlar, resmi Pandalar belgelerini içerir. Ancak öğrenilecek sayısız kurs, öğretici ve kitap da var.
Reddit gibi platformlarda r/Python ve r/Data Science alt dizinlerinde soru sormak ve yanıt almak için çevrimiçi topluluklar da vardır. Açık kaynaklı bir kitaplık olarak GitHub’daki sorunları bildirebilir ve hatta kodla katkıda bulunabilirsiniz.
Son sözler
Pandas, bir veri bilimi kitaplığı olarak inanılmaz derecede kullanışlı ve güçlüdür. Bu makalede, onu veri bilimcileri ve programcılar için başvurulacak araç yapan özellikleri keşfederek popülerliğini açıklamaya çalıştım.
Ardından, bir Pandas DataFrame oluşturmayı öğrenin.