Ana içeriğe atla

Python pandas Eğitimi: Yeni Başlayanlar için Kapsamlı Rehber

pandas yolculuğunuza başlamaya hazır mısınız? İşte adım adım nasıl başlayacağınıza dair bir rehber.
Güncel 22 Nis 2026  · 15 dk. oku

pandas, veri analizi için muhtemelen en önemli Python paketidir. Aylık 100 milyonu aşkın indirme ile veri işleme ve keşif amaçlı veri analizi için fiili standarttır. Geniş bir biçim listesinden okuma ve bu biçimlere yazma yeteneği, onu veri bilimi uygulayıcıları için çok yönlü bir araç yapar. Veri işleme işlevleri, verileri birleştirme, analiz etme ve temizleme için son derece erişilebilir ve pratik bir araç olmasını sağlar. 

pandas nasıl öğrenilir başlıklı blog yazımızda, bu paketi ustalıkla kullanmak için izleyebileceğiniz öğrenme yolundan bahsettik. Bu yeni başlayan dostu eğitim, tüm temel kavramları ele alacak ve pandas'ın farklı işlevlerini örnekleyecektir. Daha fazla ayrıntı için pandas Foundations kursumuza da göz atabilirsiniz. 

Bu makale, pandas hakkında önceden deneyimi olmayan ve temel Python bilgisine sahip yeni başlayanların işe koyulmasına yardımcı olmayı amaçlamaktadır.

pandas Nedir?

pandas, Python'da tabular veri için bir veri işleme paketidir. Yani satır ve sütunlardan oluşan, DataFrame olarak da bilinen veri. Sezgisel olarak, bir DataFrame'i Excel sayfası gibi düşünebilirsiniz. 

pandas’ın işlevselliği; satırları sıralama ve alt kümeler alma gibi veri dönüşümlerinden, ortalama gibi özet istatistikleri hesaplamaya, DataFrame'leri yeniden şekillendirmeye ve DataFrame'leri birleştirmeye kadar uzanır. pandas, genellikle PyData ekosistemi olarak adlandırılan diğer popüler Python veri bilimi paketleriyle iyi çalışır; bunlara şunlar dahildir:

pandas ne için kullanılır?

pandas, veri analizi iş akışının her aşamasında kullanılır. pandas ile şunları yapabilirsiniz:

  • Veri kümelerini veritabanlarından, elektronik tablolardan, virgülle ayrılmış değer (CSV) dosyalarından ve daha fazlasından içe aktarın.
  • Eksik değerlerle başa çıkarak veri kümelerini temizleyin.
  • Veri kümelerini, analiz için uygun bir formata gelecek şekilde yeniden şekillendirerek düzenleyin.
  • Sütunların ortalaması, aralarındaki korelasyon ve daha fazlası gibi özet istatistikler hesaplayarak verileri bir araya getirin.
  • Veri kümelerini görselleştirerek içgörüler ortaya çıkarın.

pandas ayrıca zaman serisi analizi ve metin verilerini analiz etme işlevselliği de içerir.

pandas paketinin temel faydaları

Şüphesiz, pandas birçok faydayı bir arada sunan güçlü bir veri işleme aracıdır; bunlar arasında şunlar bulunur:

  • Python için üretildi: Python, makine öğrenimi ve veri bilimi için dünyanın en popüler dilidir.
  • İşlem başına daha az kod: pandas ile yazılan kod daha az uzundur; istenen çıktıyı almak için daha az satır gerektirir. 
  • Sezgisel veri görünümü: pandas, verilerin anlaşılmasını ve analizini kolaylaştıran son derece sezgisel bir veri temsili sunar.
  • Geniş özellik seti: Keşif amaçlı veri analizinden eksik değerlerle uğraşmaya, istatistikler hesaplamaya, tek/çift değişkenli verileri görselleştirmeye ve çok daha fazlasına kadar kapsamlı bir işlem kümesini destekler.
  • Büyük verilerle çalışır: pandas, büyük veri kümelerini kolaylıkla işler. Makineye bağlı olarak milyonlarca kayıt ve yüzlerce sütundan oluşan veri kümeleriyle çalışırken hız ve verimlilik sunar.

pandas nasıl kurulur?

İşlevselliğine dalmadan önce, önce pandas'ı kuralım. Bu adımı, ücretsiz bir DataCamp hesabı oluşturarak ve pandas'ın (en popüler Python veri bilimi paketleriyle birlikte) önceden yüklü geldiği bulut tabanlı bir IDE olan DataLab'ı kullanarak atlayabilirsiniz.

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

pandas'ı kurun

pandas'ı kurmak son derece basittir; terminalinizde pip install komutunu kullanmanız yeterlidir. 

pip install pandas

Alternatif olarak, conda ile de kurabilirsiniz:

conda install pandas

pandas'ı kurduktan sonra, her şeyin doğru çalıştığından emin olmak için yüklü sürümü kontrol etmek iyi bir uygulamadır:

import pandas as pd
print(pd.__version__)  # Prints the pandas version

Bu, pandas'ın doğru kurulduğunu doğrular ve diğer paketlerle uyumluluğu kontrol etmenizi sağlar.

pandas'ta veri içe aktarma

pandas ile çalışmaya başlamak için, aşağıda gösterildiği gibi pandas Python paketini içe aktarın. pandas içe aktarılırken en yaygın takma ad pd'dir.

import pandas as pd

CSV dosyalarını içe aktarma

Virgülle ayrılmış değerli bir dosyayı okumak için dosya yolunu belirterek read_csv() kullanın (daha fazla ayrıntı için read_csv() ile veri içe aktarma eğitimimize bakın).

df = pd.read_csv("diabetes.csv")

Bu okuma işlemi, diabetes.csv dosyasını yükleyerek bir pandas DataFrame nesnesi df oluşturur. Bu eğitim boyunca, bu tür DataFrame nesnelerini nasıl işleyeceğinizi göreceksiniz. 

Metin dosyalarını içe aktarma

Metin dosyalarını okumak CSV dosyalarına benzerdir. Tek fark, aşağıda gösterildiği gibi sep bağımsız değişkeniyle bir ayırıcı belirtmeniz gerektiğidir. Ayırıcı bağımsız değişkeni, bir DataFrame'de satırları ayırmak için kullanılan simgeyi ifade eder. Virgül (sep = ","), boşluk (sep = "\s"), sekme (sep = "\t") ve iki nokta (sep = ":") en sık kullanılan ayırıcılardır. Burada \s tek bir boşluk karakterini temsil eder.

df = pd.read_csv("diabetes.txt", sep="\s")

Excel dosyalarını içe aktarma (tek sayfa)

Excel dosyalarını (hem XLS hem XLSX) okumak, dosya yolunu giriş olarak kullanan read_excel() işlevi kadar kolaydır.

df = pd.read_excel('diabetes.xlsx')

Ayrıca, DataFrame'in başlığının hangi satır olacağını belirlemek için header gibi başka bağımsız değişkenler de belirtebilirsiniz. Varsayılan değeri 0'dır; bu da ilk satırın başlıklar veya sütun adları olduğunu belirtir. names bağımsız değişkeninde bir liste olarak sütun adlarını da belirtebilirsiniz. Dosya bir satır indeksi içeriyorsa index_col (varsayılan None) bağımsız değişkeni kullanılabilir.

Not: Bir pandas DataFrame veya Series'te indeks, bir pandas DataFrame'deki bir satırın veya sütunun konumunu işaret eden tanımlayıcıdır. Kısaca, indeks DataFrame'in satırını veya sütununu etiketler ve indeksini kullanarak belirli bir satıra veya sütuna erişmenizi sağlar (bunu ileride göreceksiniz). Bir DataFrame’in satır indeksi bir aralık (ör. 0'dan 303'e), bir zaman serisi (tarihler veya zaman damgaları), benzersiz bir tanımlayıcı (ör. bir employees tablosundaki employee_ID) veya başka türden veriler olabilir. Sütunlar için genellikle bir dizedir (sütun adını belirtir).

Excel dosyalarını içe aktarma (çok sayfa)

Birden çok sayfası olan Excel dosyalarını okumak pek farklı değildir. Sadece bir ek bağımsız değişken belirtmeniz gerekir: sheet_name. Buraya sayfa adını bir dize olarak ya da sayfa konumunu bir tamsayı olarak verebilirsiniz (Python'un 0 tabanlı indeksleme kullandığını ve ilk sayfaya sheet_name = 0 ile erişildiğini unutmayın).

# Python 0-indeksleme kullandığı için ikinci sayfayı çıkarma
df = pd.read_excel('diabetes_multi.xlsx', sheet_name=1)

JSON dosyası içe aktarma

read_csv() işlevine benzer şekilde, read_json() işlevini JSON dosyaları için, JSON dosya adını bağımsız değişken olarak vererek kullanabilirsiniz (daha fazla ayrıntı için pandas'a JSON ve HTML veri içe aktarma eğitimini okuyun). Aşağıdaki kod, diskten bir JSON dosyası okur ve df adlı bir DataFrame nesnesi oluşturur.

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

pandas ile veri içe aktarma hakkında daha fazla bilgi edinmek isterseniz, Python ile çeşitli dosya türlerini içe aktarma konusunda bu özet kılavuza göz atın. 

SQL veritabanlarından veri içe aktarma

İlişkisel bir veritabanından veri yüklemek için bir veritabanı bağlantısıyla birlikte pd.read_sql() kullanın.

import sqlite3

# Establish a connection to an SQLite database
conn = sqlite3.connect("my_database.db")

# Read data from a table
df = pd.read_sql("SELECT * FROM my_table", conn)

Büyük veri kümeleri için sorguları iyileştirmek amacıyla SQLAlchemy kullanmayı düşünün.

Bir API'den veri içe aktarma (JSON Formatı)

Verileriniz bir web API'sinden geliyorsa, pandas bunu doğrudan pd.read_json() kullanarak okuyabilir:

df = pd.read_json("https://api.example.com/data.json")

API yanıtı sayfalanmışsa veya iç içe geçmiş bir JSON biçimindeyse, pandas.io.json içindeki json_normalize() ile ek işlem yapmanız gerekebilir.

pandas'ta veri dışa aktarma

pandas çeşitli dosya türlerinden veri içe aktarabildiği gibi verileri çeşitli biçimlere dışa aktarmanıza da olanak tanır. Bu özellikle, veriler pandas kullanılarak dönüştürüldüğünde ve makinenize yerel olarak kaydedilmesi gerektiğinde kullanışlıdır. Aşağıda pandas DataFrame'lerini çeşitli biçimlere nasıl aktarıp kaydedeceğiniz yer alıyor.

Bir DataFrame'i CSV dosyasına aktarma

Bir pandas DataFrame'i (burada df kullanıyoruz) .to_csv() yöntemiyle CSV dosyası olarak kaydedilir. Bağımsız değişkenler arasında dosya adı/yolu ve index bulunur – index = True, DataFrame'in indeksinin yazılacağı anlamına gelir.

df.to_csv("diabetes_out.csv", index=False)

Bir DataFrame'i JSON dosyasına aktarma

DataFrame nesnesini .to_json() yöntemini çağırarak bir JSON dosyasına dışa aktarın.

df.to_json("diabetes_out.json")

Not: Bir JSON dosyası, DataFrame gibi tabular bir nesneyi anahtar-değer çifti olarak depolar. Bu nedenle bir JSON dosyasında tekrarlayan sütun başlıkları görürsünüz.

Bir DataFrame'i metin dosyasına aktarma

DataFrame'leri CSV dosyalarına yazmaya benzer şekilde, .to_csv() çağrısı yapabilirsiniz. Tek fark, çıktı dosya biçiminin .txt olması ve sep bağımsız değişkeniyle bir ayırıcı belirtmeniz gerektiğidir.

df.to_csv('diabetes_out.txt', header=df.columns, index=None, sep=' ')

Bir DataFrame'i Excel dosyasına aktarma

.to_excel() yöntemini DataFrame nesnesinden çağırarak “.xls” veya “.xlsx” dosyası olarak kaydedin.

df.to_excel("diabetes_out.xlsx", index=False)

pandas kullanarak DataFrame'leri görüntüleme ve anlama 

Tabular veriyi bir DataFrame olarak okuduktan sonra, veriye hızlıca göz atmanız gerekir. Veri kümesinin küçük bir örneğini ya da özet istatistikler biçiminde bir özetini görüntüleyebilirsiniz.

.head() ve .tail() ile verileri nasıl görüntülersiniz

Bir DataFrame'in ilk birkaç veya son birkaç satırını sırasıyla .head() veya .tail() yöntemleriyle görüntüleyebilirsiniz. n bağımsız değişkeniyle satır sayısını belirtebilirsiniz (varsayılan değer 5'tir).

df.head()

First five rows of the DataFrame (df) using .head()

DataFrame'in ilk beş satırı 

df.tail(n = 10)

last 10 rows of a Dataframe with df.head()

DataFrame'in son 10 satırı 

.describe() ile verileri anlama

.describe() yöntemi; tüm sayısal sütunların özet istatistiklerini, örneğin adet, ortalama, standart sapma, aralık ve çeyreklikleri yazdırır.

df.describe()

Get summary statistics with .describe()

.describe() ile özet istatistikleri alın

Bu, sayısal verinin ölçeğine, çarpıklığına ve aralığına hızlı bir bakış sağlar.

percentiles bağımsız değişkenini kullanarak çeyreklikleri de değiştirebilirsiniz. Burada örneğin, DataFrame df içindeki sayısal sütunların yüzde 30, 50 ve 70'lik dilimlerine bakıyoruz.

df.describe(percentiles=[0.3, 0.5, 0.7])

Get summary statistics with specific percentiles  pandas

Belirli yüzdeliklerle özet istatistikleri alın 

Ayrıca, include bağımsız değişkenini kullanarak özet çıktınızda belirli veri türlerini izole edebilirsiniz. Burada örneğin, yalnızca integer veri türüne sahip sütunları özetliyoruz. 

df.describe(include=[int])

summary statistics of integer columns only pandas

Yalnızca tamsayı sütunlarının özet istatistiklerini alın 

Benzer şekilde, exclude bağımsız değişkenini kullanarak belirli veri türlerini hariç tutmak isteyebilirsiniz.

df.describe(exclude=[int])

get summary statistics of non-integer columns pandas

Yalnızca tamsayı olmayan sütunların özet istatistiklerini alın 


Uygulayıcılar, bu tür istatistikleri .T özniteliğiyle transpoze ederek görüntülemeyi genellikle daha kolay bulur.

df.describe().T

Transpose summary statistics pandas

Özet istatistikleri .T ile transpoze edin


DataFrame'leri betimleme hakkında daha fazlası için şu özet kılavuza göz atın.

pandas'ın temel prensiplerini öğrenin

Elektronik Tablo Kullanıcıları için Python

BeginnerSkill Level
4 sa
28.9K learners
Yaygın elektronik tablo işlevleri ve teknikleri konusundaki bilginizi kullanarak Python'u keşfedin!
See DetailsRight Arrow

.info() ile verileri anlama

.info() yöntemi, bir DataFrame'in veri türlerine, eksik değerlere ve veri boyutuna hızlıca bakmanın bir yoludur. Burada, her sütundaki toplam eksik olmayan değerlerin bir görünümünü veren show_counts bağımsız değişkenini True olarak ayarlıyoruz. Ayrıca, DataFrame öğelerinin toplam bellek kullanımını gösteren memory_usageTrue olarak ayarlıyoruz. verbose True olarak ayarlandığında, .info()'dan tam özeti yazdırır. 

df.info(show_counts=True, memory_usage=True, verbose=True)

image26.png

.shape ile verinizi anlama

Bir DataFrame'in satır ve sütun sayısı, DataFrame'in .shape özniteliği kullanılarak belirlenebilir. Bu, bir demet (satır, sütun) döndürür ve çıktıda yalnızca satır sayısını veya yalnızca sütun sayısını almak için indekslenebilir.

df.shape # Get the number of rows and columns
df.shape[0] # Get the number of rows only
df.shape[1] # Get the number of columns only
(768,9)
768
9

Tüm sütunları ve sütun adlarını alın

Bir DataFrame nesnesinin .columns özniteliğini çağırmak, sütun adlarını bir Index nesnesi biçiminde döndürür. Hatırlatma olarak, bir pandas indeksi satırın veya sütunun adresi/etiketidir.

df.columns

Output of columns

list() işlevi kullanılarak bir listeye dönüştürülebilir.

list(df.columns)

column names as a list pandas

pandas'ta .isnull() ile eksik değerleri kontrol etme

Örnek DataFrame'imizde eksik değer yok. İşleri biraz ilginçleştirmek için birkaç tane ekleyelim. .copy() yöntemi, orijinal DataFrame'in bir kopyasını oluşturur. Bu, kopyadaki değişikliklerin orijinal DataFrame'de yansımamasını sağlamak için yapılır. .loc'u kullanarak (ileride ele alınacak), Pregnancies sütununun iki ile beşinci satırlarını eksik değerleri ifade eden NaN olarak ayarlayabilirsiniz.

df2 = df.copy()
df2.loc[2:5,'Pregnancies'] = None
df2.head(7)

Rows 2 to 5 are missing pandas

Gördüğünüz gibi, artık 2 ile 5. satırlar NaN

Bir DataFrame'deki her öğenin eksik olup olmadığını .isnull() yöntemiyle kontrol edebilirsiniz.

df2.isnull().head(7)

Genellikle ne kadar eksik veri olduğunun bilinmesi daha faydalı olduğundan, her sütundaki boş değerleri saymak için .isnull() ile .sum()'ı birleştirebilirsiniz.

df2.isnull().sum()
Pregnancies                 4
Glucose                     0
BloodPressure               0
SkinThickness               0
Insulin                     0
BMI                         0
DiabetesPedigreeFunction    0
Age                         0
Outcome                     0
dtype: int64

DataFrame'deki toplam boş değer sayısını almak için çift toplam da yapabilirsiniz.

df2.isnull().sum().sum()
4

pandas'ta Sıralama, Dilimleme ve Veri Çıkarma

pandas paketi, DataFrame'lerinizde verileri sıralamak, alt kümelere ayırmak, filtrelemek ve izole etmek için çeşitli yollar sunar. Burada en yaygın yolları göreceğiz.

Verileri sıralama

Bir DataFrame'i belirli bir sütuna göre sıralamak için:

df.sort_values(by="Age", ascending=False, inplace=True)  # Sort by Age in descending order

Birden çok sütuna göre sıralayabilirsiniz:

df.sort_values(by=["Age", "Glucose"], ascending=[False, True], inplace=True)

İndeksi sıfırlama

Bir DataFrame'i filtreler veya sıralarsanız, indeksiniz hizadan çıkabilir. Bunu düzeltmek için .reset_index() kullanın:

df.reset_index(drop=True, inplace=True)  # Resets index and removes old index column

Koşulları kullanarak verileri filtreleme

Bir koşula göre veri çıkarmak için:

df[df["BloodPressure"] > 100]  # Selects rows where BloodPressure is greater than 100

Tek bir sütunu [ ] ile izole etme 

Köşeli parantez [ ] içine bir sütun adı yazarak tek bir sütunu izole edebilirsiniz. Çıktı bir pandas Series nesnesidir. Bir pandas Series, tamsayı, kayan nokta, dize, boolean, Python nesneleri vb. dahil olmak üzere herhangi bir türde veriyi içeren tek boyutlu bir dizidir. Bir DataFrame, sütun görevi gören birçok seriden oluşur.

df['Outcome']

Isolating one column in pandas

pandas'ta tek bir sütunu izole etme

İki veya daha fazla sütunu [[ ]] ile izole etme 

Birden fazla sütunu getirmek için köşeli parantez içine bir sütun adları listesi de verebilirsiniz. Burada köşeli parantezler iki farklı şekilde kullanılır. Dış köşeli parantezleri bir DataFrame'in alt kümesini belirtmek için, iç köşeli parantezleri ise bir liste oluşturmak için kullanırız.

df[['Pregnancies', 'Outcome']]

image15.png

pandas'ta iki sütunu izole etme

Tek bir satırı [ ] ile izole etme 

Tek bir satır, içinde bir adet True değeri olan bir boolean seri geçirilerek alınabilir. Aşağıdaki örnekte, index = 1 olan ikinci satır döndürülür. Burada .index, DataFrame'in satır etiketlerini döndürür ve karşılaştırma bunu bir Boolean tek boyutlu diziye dönüştürür.

df[df.index==1]

Isolating one row in pandas

pandas'ta tek bir satırı izole etme

İki veya daha fazla satırı [ ] ile izole etme 

Benzer şekilde, == operatörü yerine .isin() yöntemi kullanılarak iki veya daha fazla satır döndürülebilir.

df[df.index.isin(range(2,10))]

Isolating specific rows in pandas

pandas'ta belirli satırları izole etme

Satırları getirmek için .loc[] ve .iloc[] kullanma

Belirli satırları etiketlerle veya koşullarla .loc[] ve .iloc[] ("konum" ve "tamsayı konumu") kullanarak getirebilirsiniz. .loc[] bir satıra, sütuna veya hücreye işaret etmek için etiketi kullanırken, .iloc[] sayısal konumu kullanır. İkisi arasındaki farkı anlamak için daha önce oluşturulan df2'nin indeksini değiştirelim.

df2.index = range(1,769)

Aşağıdaki örnek bir DataFrame yerine bir pandas Series döndürür. 1 satır indeksini (etiketini) temsil ederken, .iloc[] içindeki 1 satır konumunu (ilk satır) ifade eder.

df2.loc[1]
Pregnancies                   6.000
Glucose                     148.000
BloodPressure                72.000
SkinThickness                35.000
Insulin                       0.000
BMI                          33.600
DiabetesPedigreeFunction      0.627
Age                          50.000
Outcome                       1.000
Name: 1, dtype: float64
df2.iloc[1]
Pregnancies                  1.000
Glucose                     85.000
BloodPressure               66.000
SkinThickness               29.000
Insulin                      0.000
BMI                         26.600
DiabetesPedigreeFunction     0.351
Age                         31.000
Outcome                      0.000
Name: 2, dtype: float64

Köşeli parantez içinde bir aralık vererek birden çok satırı da getirebilirsiniz.

df2.loc[100:110]

Isolating rows with loc

.loc[] ile pandas'ta satırları izole etme

df2.iloc[100:110]

Isolating rows in pandas with .loc[]

.iloc[] ile pandas'ta satırları izole etme

Aralık yerine bir liste kullanarak da .loc[] ve .iloc[] ile alt küme alabilirsiniz.

df2.loc[[100, 200, 300]]

Isolating rows using a list in pandas with .loc[]

pandas'ta bir liste kullanarak .loc[] ile satırları izole etme

df2.iloc[[100, 200, 300]]

image25.png

pandas'ta bir liste kullanarak .iloc[] ile satırları izole etme

Satırlarla birlikte belirli sütunları da seçebilirsiniz. .iloc[]’un .loc[]’dan farkı burada ortaya çıkar – sütun etiketlerini değil, sütun konumunu gerektirir.

df2.loc[100:110, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating columns using a list in pandas with .loc[]

.loc[] ile pandas'ta sütunları izole etme

df2.iloc[100:110, :3]

Isolating columns using in pandas with .iloc[]

.iloc[] ile sütunları izole etme

Daha hızlı iş akışları için, bir satırın başlangıç indeksini bir aralık olarak geçebilirsiniz.

df2.loc[760:, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating columns using in pandas with .loc[]

.loc[] ile pandas'ta satır ve sütunları izole etme

df2.iloc[760:, :3]

image4.png
.iloc[] ile pandas'ta satır ve sütunları izole etme

Atama operatörü = kullanarak belirli değerleri güncelleyebilir/değiştirebilirsiniz

df2.loc[df['Age']==81, ['Age']] = 80

Koşullu dilimleme (belirli koşulları sağlayan)

pandas, satır/sütun değerleri üzerindeki koşullara göre veri filtrelemenize olanak tanır. Örneğin, aşağıdaki kod Kan Basıncı'nın tam olarak 122 olduğu satırı seçer. Burada, önceki bölümlerde görüldüğü gibi köşeli parantez [ ] kullanarak satırları izole ediyoruz. Ancak satır indeksleri veya sütun adları girmek yerine, BloodPressure sütununun 122'ye eşit olduğu bir koşul giriyoruz. Bu koşulu df.BloodPressure == 122 ifadesiyle belirtiriz.

df[df.BloodPressure == 122]

Isolating rows based on a condition in pandas

pandas'ta bir koşula göre satırları izole etme 

Aşağıdaki örnek, Outcome'ın 1 olduğu tüm satırları getirir. Burada df.Outcome o sütunu seçer, df.Outcome == 1 1'e eşit olan Outcome değerlerini belirleyen bir Boolean seri döndürür, ardından [] bu Boolean serisinin True olduğu df'in bir alt kümesini alır.

df[df.Outcome == 1]

Isolating rows based on a condition in pandas

pandas'ta bir koşula göre satırları izole etme 

> operatörünü kullanarak karşılaştırmalar yapabilirsiniz. Aşağıdaki kod, BloodPressure değeri 100'den büyük olan tüm kayıtlar için Pregnancies, Glucose ve BloodPressure sütunlarını getirir.

df.loc[df['BloodPressure'] > 100, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating rows and columns based on a condition in pandas

pandas'ta bir koşula göre satır ve sütunları izole etme 

pandas kullanarak verileri temizleme 

Veri temizleme, veri bilimindeki en yaygın görevlerden biridir. pandas, makine öğrenimi ve derin öğrenme modellerini eğitmek dahil her türlü kullanım için veriyi ön işleme imkânı verir. Daha önce dört eksik değere sahip df2 DataFrame'ini birkaç veri temizleme kullanım örneğini göstermek için kullanalım. Hatırlatma olarak, bir DataFrame'de kaç eksik değer olduğunu şu şekilde görebilirsiniz.

df2.isnull().sum()
Pregnancies                 4
Glucose                     0
BloodPressure               0
SkinThickness               0
Insulin                     0
BMI                         0
DiabetesPedigreeFunction    0
Age                         0
Outcome                     0
dtype: int64

Eksik verilerle başa çıkma tekniği #1: Eksik değerleri atmak

Eksik verilerle başa çıkmanın bir yolu onları atmaktır. Bu, çok fazla veriye sahip olduğunuz ve küçük bir kısmını kaybetmenin aşağı akış analizini etkilemeyeceği durumlarda özellikle kullanışlıdır. Aşağıda gösterildiği gibi .dropna() yöntemini kullanabilirsiniz. Burada, .dropna() sonuçlarını df3 adlı bir DataFrame'e kaydediyoruz.

df3 = df2.copy()
df3 = df3.dropna()
df3.shape
(764, 9) # this is 4 rows less than df2

axis bağımsız değişkeni, eksik değer içeren satırları mı yoksa sütunları mı attığınızı belirtmenizi sağlar. Varsayılan axis, NaN içeren satırları kaldırır. Bir veya daha fazla NaN değeri içeren sütunları kaldırmak için axis = 1 kullanın. Ayrıca, .dropna() çıktısını yeni bir DataFrame'e kaydetmeyi atlamanızı sağlayan inplace=True bağımsız değişkenini nasıl kullandığımıza dikkat edin.  

df3 = df2.copy()
df3.dropna(inplace=True, axis=1)
df3.head()

Dropping missing data pandas

pandas'ta eksik verileri atma

how bağımsız değişkenini 'all' olarak ayarlayarak eksik değer içeren hem satırları hem de sütunları atabilirsiniz

df3 = df2.copy()
df3.dropna(inplace=True, how='all')

Eksik verilerle başa çıkma tekniği #2: Eksik değerleri değiştirme

Atmak yerine, eksik değerleri bir özet istatistikle veya belirli bir değerle (kullanım durumuna bağlı olarak) değiştirmek en iyi yol olabilir. Örneğin, haftanın günleri boyunca sıcaklıkları gösteren bir sütunda bir satır eksikse, o eksik değeri o haftanın ortalama sıcaklığıyla değiştirmek, değerleri tamamen atmaktan daha etkili olabilir. Aşağıdaki kodu kullanarak eksik verileri satır veya sütun ortalamasıyla değiştirebilirsiniz.

df3 = df2.copy()
# Get the mean of Pregnancies
mean_value = df3['Pregnancies'].mean()
# Fill missing values using .fillna()
df3 = df3.fillna(mean_value)

Yinelenen verilerle başa çıkma

Bir DataFrame'deki yinelenenleri nasıl ortadan kaldıracağınızı öğrenmek için orijinal veriye bazı kopyalar ekleyelim. Burada .concat() yöntemini kullanarak df2 DataFrame'inin satırlarını yine df2 ile birleştiriyor, böylece df2'deki her satırın birebir kopyalarını ekliyoruz. 

df3 = pd.concat([df2, df2])
df3.shape
(1536, 9)

.drop_duplicates() yöntemini kullanarak DataFrame'den tüm yinelenen satırları (varsayılan) kaldırabilirsiniz.

df3 = df3.drop_duplicates()
df3.shape
(768, 9)

Sütunları yeniden adlandırma

Yaygın bir veri temizleme görevi sütunları yeniden adlandırmaktır. .rename() yöntemiyle belirli sütunları yeniden adlandırmak için columns bağımsız değişkenini kullanabilirsiniz. Aşağıdaki kod, eski ve yeni sütun adlarının eşlemesine ilişkin sözlüğü gösterir.

df3.rename(columns = {'DiabetesPedigreeFunction':'DPF'}, inplace = True)
df3.head()

Renaming columns in pandas

pandas'ta sütunları yeniden adlandırma

Sütun adlarını bir liste olarak doğrudan DataFrame'e de atayabilirsiniz.

df3.columns = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DPF', 'Age', 'Outcome', 'STF']
df3.head()

Renaming columns in pandas

pandas'ta sütunları yeniden adlandırma

Daha kolay, daha öngörülebilir veri temizleme iş akışları ve veri temizleme hakkında daha fazlası için, yaygın veri temizleme görevlerinin kapsamlı bir listesini sunan aşağıdaki kontrol listesini inceleyin. 

pandas'ta veri analizi

pandas'ın ana değer önerisi, hızlı veri analizi işlevselliğinde yatar. Bu bölümde, pandas'ta kullanabileceğiniz bir dizi analiz tekniğine odaklanacağız.

Özet operatörleri (ortalama, tepe değer, medyan)

Daha önce gördüğünüz gibi, .mean() yöntemiyle her sütun değerinin ortalamasını alabilirsiniz.

df.mean()

Printing the mean of columns in pandas

pandas'ta sütunların ortalamasını yazdırma

Tepe değer (mod) benzer şekilde .mode() yöntemiyle hesaplanabilir. 

df.mode()

image22.png

pandas'ta sütunların tepe değerini yazdırma

Benzer şekilde, her sütunun medyanı .median() yöntemiyle hesaplanır

df.median()

Printing the median of columns in pandas
pandas'ta sütunların medyanını yazdırma

Mevcut sütunlara dayalı yeni sütunlar oluşturma 

pandas, iki veya daha fazla sütunu skaler değişkenler gibi birleştirerek hızlı ve verimli hesaplama sağlar. Aşağıdaki kod, Glucose sütunundaki her değeri Insulin sütunundaki karşılık gelen değerle bölerek Glucose_Insulin_Ratio adlı yeni bir sütun hesaplar.

df2['Glucose_Insulin_Ratio'] = df2['Glucose']/df2['Insulin']
df2.head()

Create a new column from existing columns in pandas

pandas'ta mevcut sütunlardan yeni bir sütun oluşturma

.value_counts() ile sayım yapma

Çoğu zaman kategorik değerlerle çalışırsınız ve bir sütunda her kategorinin kaç gözleme sahip olduğunu saymak istersiniz. Kategori değerleri, .value_counts() yöntemleri kullanılarak sayılabilir. Burada örneğin, Outcome'ın diyabetik (1) olduğu ve Outcome'ın diyabetik olmadığı (0) gözlemlerin sayısını sayıyoruz.

df['Outcome'].value_counts()

Using .value_counts() in pandas

pandas'ta .value_counts() kullanma

normalize bağımsız değişkenini eklemek, mutlak sayımlar yerine oranları döndürür.

df['Outcome'].value_counts(normalize=True)

Using .value_counts() in pandas with normalization

pandas'ta normalleştirme ile .value_counts() kullanma


Sonuçların otomatik sıralamasını sort bağımsız değişkeniyle kapatın (varsayılan olarak True). Varsayılan sıralama, azalan düzende sayımlara göredir.

df['Outcome'].value_counts(sort=False)

Using .value_counts() in pandas with normalization

Sıralama ile .value_counts() kullanma

.value_counts()’ı yalnızca bir sütuna değil, bir DataFrame nesnesine ve içindeki belirli sütunlara da uygulayabilirsiniz. Burada örneğin, subset bağımsız değişkeniyle, bir sütun listesini alan df üzerinde value_counts() uyguluyoruz. 

df.value_counts(subset=['Pregnancies', 'Outcome'])

Using .value_counts() in pandas while subsetting columns

Sütunları alt kümelere ayırırken pandas'ta .value_counts() kullanma

pandas'ta .groupby() ile verileri bir araya getirme

pandas, belirli sütun değerlerine göre gruplandırarak değerleri bir araya getirmenize olanak tanır. Bunu, .groupby() yöntemini seçtiğiniz bir özet yöntemiyle birleştirerek yapabilirsiniz. Aşağıdaki kod, Outcome'a göre gruplandırılmış her bir sayısal sütunun ortalamasını gösterir.

df.groupby('Outcome').mean()

Aggregating data by one column in pandas

pandas'ta tek bir sütuna göre verileri bir araya getirme

.groupby(), aşağıda gösterildiği gibi bir sütun adları listesi geçirerek birden fazla sütuna göre gruplandırmayı mümkün kılar.

df.groupby(['Pregnancies', 'Outcome']).mean()

Aggregating data by two columns in pandas

pandas'ta iki sütuna göre verileri bir araya getirme

.groupby() ile birlikte .min(), .max(), .mean(), .median(), .sum(), .mode() ve daha fazlası dahil olmak üzere herhangi bir özet yöntemi kullanılabilir.

Pivot tablolar 

pandas, özet istatistikleri pivot tablolar olarak da hesaplamanıza olanak tanır. Bu, değişken kombinasyonlarına dayalı çıkarımlar yapmayı kolaylaştırır. Aşağıdaki kod, satırlar olarak Pregnancies'in benzersiz değerlerini, sütun değerleri olarak Outcome'ın benzersiz değerlerini seçer ve hücreler ilgili gruptaki BMI'nın ortalama değerini içerir.

Örneğin, Pregnancies = 5 ve Outcome = 0 için, ortalama BMI 31.1 çıkmaktadır.

pd.pivot_table(df, values="BMI", index='Pregnancies', 
               columns=['Outcome'], aggfunc='mean')

Aggregating data by pivoting with pandas

pandas ile pivotlama yaparak verileri bir araya getirme

pandas'ta veri görselleştirme

pandas, DataFrame'lerinizi kolayca görselleştirmeniz için Matplotlib çizim işlevlerine kolaylık sağlayan sarmalayıcılar sunar. Aşağıda pandas kullanarak yaygın veri görselleştirmelerinin nasıl yapılacağını göreceksiniz.

pandas'ta çizgi grafikleri

pandas, çizgi grafikleri kullanarak değişkenler arasındaki ilişkileri çizmenizi sağlar. Aşağıda, BMI ve Glucose'un satır indeksine karşı çizgi grafiği bulunmaktadır.

df[['BMI', 'Glucose']].plot.line()

Basic lineplot with pandas

pandas ile temel çizgi grafiği

Renk seçimini color bağımsız değişkenini kullanarak belirleyebilirsiniz.

df[['BMI', 'Glucose']].plot.line(figsize=(20, 10), 
                                 color={"BMI": "red", "Glucose": "blue"})

Basic line plot with pandas, with custom colors

pandas ile özel renklerle temel çizgi grafiği

df'in tüm sütunları subplots bağımsız değişkeni kullanılarak farklı ölçeklerde ve eksenlerde de çizdirilebilir.

df.plot.line(subplots=True)

Subplots for line plots with pandas

pandas ile çizgi grafikler için alt grafikler

pandas'ta çubuk grafikler

Kesikli sütunlar için, dağılımlarını görselleştirmek amacıyla kategori sayımları üzerinden bir çubuk grafik kullanabilirsiniz. İkili değerlere sahip Outcome değişkeni aşağıda görselleştirilmiştir.

df['Outcome'].value_counts().plot.bar()

Barplots in pandas

pandas'ta çubuk grafikler

pandas'ta kutu grafikleri

Sürekli değişkenlerin çeyreklik dağılımı bir kutu grafiği ile görselleştirilebilir. Aşağıdaki kod, pandas ile bir kutu grafiği oluşturmanıza olanak tanır.

df.boxplot(column=['BMI'], by='Outcome')

Boxplots in pandas
pandas'ta kutu grafikleri

pandas Hakkında Daha Fazla Bilgi Edinin

Yukarıdaki eğitim, pandas ile yapılabileceklerin yüzeyine dokunuyor. İster veriyi analiz edin, ister görselleştirin, filtreleyin veya bir araya getirin; pandas, herhangi bir veri iş akışını hızlandırmanızı sağlayan son derece zengin bir özellik seti sunar. Dahası, pandas'ı diğer veri bilimi paketleriyle birleştirerek etkileşimli panolar oluşturabilir, makine öğrenimi kullanarak tahmine dayalı modeller geliştirebilir, veri iş akışlarını otomatikleştirebilir ve daha fazlasını yapabilirsiniz. pandas öğrenme yolculuğunuzu hızlandırmak için aşağıdaki kaynaklara göz atın:

pandas SSS

Python'da pandas nedir?

pandas, Python'da güçlü bir veri işleme kütüphanesidir. Veri çerçevelerini (data frame) yönetmek ve analiz etmek için gereken veri yapıları ve işlevleri sağlar. Veri temizleme, dönüştürme ve analizini verimli şekilde mümkün kıldığı için veri analizi ve veri bilimi dünyasında vazgeçilmezdir.

Neden pandas öğrenmeliyim?

Python'da verilerle çalışıyorsanız, pandas neredeyse öğrenilmesi şarttır. Veriyi ele alma ve analiz etme sürecini basitleştirir; böylece içgörü çıkarmaya ve değer yaratmaya odaklanabilirsiniz. İster küçük ister büyük ölçekli veriyle uğraşın, pandas hız, esneklik ve kullanıcı dostu veri yapılarıyla işinizi kolaylaştırır.

pandas'ı nasıl kurarım?

pandas'ı kurmak için sisteminizde Python ve pip (Python paket yükleyicisi) bulunmalıdır. Ardından pip install pandas komutuyla pandas'ı kurabilirsiniz. Anaconda gibi bir ortamda Jupyter notebook kullanıyorsanız, pandas önceden yüklü gelir.

pandas'taki temel veri yapıları nelerdir?

pandas'taki iki temel veri yapısı Series ve DataFrame'dir. Series özünde bir sütundur; DataFrame ise bir dizi Series'ten oluşan çok boyutlu bir tablodur. Bu yapılar esnektir; farklı türlerde verileri (ör. tamsayı, dize, kayan nokta) barındırabilirler.

pandas büyük veri kümeleri için iyi midir?

Evet, pandas büyük veri kümeleri için iyi bir tercihtir. Verimli veri analizi için tasarlanmıştır; buna büyük veri kümeleri de dahildir. Ancak işleyebileceğiniz veri boyutunun bir ölçüde sistem belleğinize bağlı olduğunu unutmayın. Belleğe sığmayan aşırı büyük veri kümeleriyle uğraşıyorsanız, farklı araçlar veya teknikler (ör. parça parça işleme ya da dask kullanma) gerekebilir.

Verileri pandas'a nasıl içe aktarırım?

pandas, CSV, Excel, SQL veritabanları, JSON ve daha birçok dosya biçiminden veri okuyabilir. Sırasıyla pd.read_csv(), pd.read_excel(), pd.read_sql() ve pd.read_json() komutları ilgili dosya türlerinden veri içe aktarmak için kullanılır. Bu komutların tümü, pandas ile işleyebileceğiniz bir DataFrame döndürür.


Vidhi Chugh's photo
Author
Vidhi Chugh
LinkedIn

Veri bilimi, ürün ve mühendisliğin kesişiminde çalışarak ölçeklenebilir makine öğrenimi sistemleri geliştiren bir Yapay Zeka Stratejisti ve Etik Uzmanıyım. Dünyadaki "En İyi 200 İş ve Teknoloji Yenilikçisinden" biri olarak listelenmiş bulunuyorum; makine öğrenimini demokratikleştirmek ve bu dönüşümün parçası olabilmeleri için herkes adına jargonu sadeleştirmek misyonuyla çalışıyorum.

Konular

Daha fazla pandas kursu

Kurs

Python’a Giriş

4 sa
6.8M
Python ile veri analizi temellerini sadece dört saatte öğrenin. Bu çevrimiçi kurs, Python arayüzünü tanıtacak ve popüler paketleri keşfedecektir.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow