Data Analysis, Python, Pandas

Kategori: Data Mining , 09 Kasım 2019 , JanFranco


Bu yazımda Pandas kütüphanesini kullanacağız, göreceğiz. Import ederek başlayalım:


import pandas as pd

numbers = [10,220,500]
dict = {
    "Ankara": "Mansur Yavaş",
    "İstanbu": "Ekrem İmamoğlu",
    "İzmir": "CHP"
}
dict = pd.Series(dict)
dict.name = "Seçimler 2019"
numbers = pd.Series(numbers)
Bu şekilde dizileri, listeleri, sözlükleri pandas Series haline getirebiliriz. pandas kütüphanesindeki Series methodu elementleri tablodaymış gibi gösterir ve index vererek numaralandırır. name methodu ile series'lere name verebiliriz.


years = [2017,2018,2019]
income = [10000, 200000, 1000000]
newSeries = pd.Series(data = income, index = years)
newSeries.name = "Year-Income Table"
Eğer indexleri kendimiz vermek istiyorsak, Series methoduna data= ve index= olarak ayrı ayrı parametreler verebiliriz.


sum = newSeries.sum()
min = newSeries.min()
max = newSeries.max()
product = newSeries.product()
mean = newSeries.mean()
median = newSeries.median()
standardDev = newSeries.std()
length = newSeries.count()
print(newSeries.describe())
Toplam, minimum, maximum, çarpım ve ortalama gibi bilgileri bu şekilde hesaplayalabiliriz. describe methodu ile uzunluk, ortalama, standart sapma, minimum, maximum gibi değerleri bastırabiliriz.


top5 = newSeries.head()
last5 = newSeries.tail()
Büyük çaplı datasetleri tamamen yüklemek yerine başından veya sonundan bir kısmı çekebiliriz. Parametre göndermezsek default olarak 5 veri çeker.


newSeries.sort_values(inplace=True)
newSeries.sort_values(ascending=False, inplace=True)
sort_values methodu ile verileri sıralayabiliriz. Eğer inplace değerini True yaparsak bir değişkene atamamıza gerek kalmadan, bu işlemi kalıcı hale getirir. ascending = False yaparsak tersten sıralar.


count = newSeries.value_counts()
maxIndex = newSeries.idxmax()
minIndex = newSeries.idxmin()
value_counts methodu bir verinin kaç gez geçtiğini hesaplar. Örneğin ülkeler ile ilgili bir verisetinde her ülkenin bulunduğu kıtanın bilgisi de olsun. Hangi kıtada kaç ülke olduğunu öğrenmek için bu methou kullanabiliriz. idxmax() ve idxmin() methodları, max değer ile min değerin indexini verir.


def function():
    pass

afterFunction = newSeries.apply(function)
Bir fonksiyon tanımlayıp, apply methodu ile verilere bu fonksiyona uygulayabiliriz. Bu method sonrası yeni bir Series return edilir.


df = pd.read_csv("<dosya-adi>")
Dataframeler, Serie'lerin sütunlu versiyonlarıdır. Serie'lerde sadece index ve değer varken, dataframelerde index, değer ve sütunlar vardır.


shape = df.shape
columns = df.columns
axes = df.axes
info = df.info()
df = pd.read_csv("<dosya-adi>", index_col="<columnd-adi>")
Dataframe'in boyutlarını öğrenmek için shape, sütun ve satır sayısını öğrenmek için columns ve axes, bilgilerini öğrenmek için info() methodları kullanılır. Bir sütunu indexe çevirmek için okuma işlemi yaparken, parametre index_col="" şeklinde girilir.


df = df[["<column-adi>"], ["<column2-adi>"]].head()
Yukarıda 2 adet column aldık ve sadece bu iki column'un olduğu bir verisetindeki ilk 5 veriyi çektik.


df["<new-column-name>"] = 12
Yukarıda yeni bir sütun ekledik ve tüm değerlerini 12 yaptık.


df.dropna(how="any", inplace=True)
df.dropna(how="all", inplace=True)
df.dropna(subset=["<column-name>"], inplace=True)
df.fillna(1, inplace=True)
df["<column-name>"].astype("int")
dropna() methodu ile NaN değerleri silebiliriz. Eğer parametre olarak how="any" girersek bir NaN değeri olsa bile o satırı silecektir. how="all" dersek tüm sütunları NaN değer olan satırları silecektir. Herhangi bir sütunda NaN değeri varsa sil demek için subset parametresini kullanırız. fillna methodu ile de NaN değerleri doldurabiliriz. astype methodu ile örneğin float olan değerleri integere çevirebiliriz.


df.sort_values(["<column-name>", "<column2-name>"], ascending=[True, False])
Bu şekilde ilk sütunu küçükten büyüğe, ikinci sütunu büyükten küçüğe sıralayabiliriz.


df["<new-column-name>"] = df["<column-name>"].rank(ascending=False)
Bu şekilde yeni bir sütun oluşturduk ve bu sütuna datasetteki bir columnun rank değerlerini atadık. rank methodu seçtiğimiz columna göre bir sıralama yapar ve bu sıralamadaki indeksleri verir. Örneğin ülkeler ile ilgili bir verisetimiz olsun. Bu verisetinde milli gelirler sütunu olsun ve biz bu milli gelirlere göre bir rank işlemi yapalım. 3. sıradaki ülkenin milli gelirine rankı 15 olabilir. rank methodu bu şekilde bir işlem yapar.


filteredDf = df[df["<column-name>"] == "<filter-value>"]
filteredDf = df[df["<column-name>"] > "<filter-value>"]
filteredDf = df[df["<column-name>"] > "<filter-value>" | df["<column-name>"] > "<filter-value>"]
filteredDf = df[df["<column-name>"] > "<filter-value>" & df["<column-name>"] > "<filter-value>"]
Bu şekilde filtreleme işlemleri yapabiliriz. == veya <, > gibi işaretler kullanarak yaptığımız işlemler sonucunda dataset bize True, False değerler return eder. Bu değerleriler ile tekrar dataset çağırıldığında filtreleme işlemi yapılmış olur. Birden fazla koşul varsa | ve & operatörlerini kullanabiliriz.


filteredDf = df[df["<column-name>"].isin(["value", "value2"])]
filteredDf = df[df["<column-name>"].isnull()]
filteredDf = df[df["<column-name>"].isnotnull()]
isnull ve isnotnull methodları bize NaN ve NaN olmayan değerlerin bulunduğu satırları True False değerler olarak döndürür. isin methodu içinde value veya value2 bulunan satırları True False olarak döndürür.


Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın