10 Nisan 2022 Pazar

Sürekli ve object değişkenleri kategorik değişkene çevirmek (.cut ve categorical metodlarıyla) ve bazı pivot yöntemleri

Herhangi bir sürekli değişkeni kategorik değişkenlere ayırmak için ".cut" metodu çok kullanışlı. Şu videodan öğrendim. (dk. 8 civarı)

Mesela aşağıda titanic adlı verinin "age" kolonundaki değerleri 0-18 ve 18-90 şeklinde iki kategoriye bölüyoruz.

age=pd.cut(titanic["age"],[0,18,90])
age.head(20)


Bunu sonrasında pivot tabloya da kategorik değişken olarak aktarabiliyoruz:
titanic.pivot_table("survived", ["sex",age], "class")


Bunu üç kategoriye ayırıp etiket eklediğimiz bir örnek:
titanic["age_2"]=pd.cut(titanic["age"],[0,18,60,90],labels=["Under_18","Btw18and60","Over_60"])
titanic["age_2"].head(20)

Bunun yanı sıra bazı object değerlerini de kategorik değişken haline getirmek faydalı olabiliyor. Bunun için pd.Categorical kullanılabiliyor.
Örneğin:
import pandas as pd
titanic.embark_town = pd.Categorical(titanic.embark_town)
titanic['embark_town'].dtypes

Gelelim pivot tabloya:

Diyelim ki ortalamayı değil (1'lerden ve 0'lardan oluşan) survived kategorik değişkeninin 1'lerinin ve 0'larının toplamını görmek istiyoruz. Yani cinsiyet, ve "yaş kategorisi" kategorilerine göre 0'ların ve 1'lerin (hayatta kalanların ve kalmayanların) toplamlarını görmek istiyoruz. Burada en baştaki "alive" değişkeni sadece toplam gözlem sayısını bulabilmek için kullandığım bir değişken, çünkü "null value"su yok. Bunun yerine "null value"su olmayan başka bir kolon da kullanabilirdik. Survive değişkeninin ortalamasını alacak olsak "alive" yerinde "survived"ın olması gerekecekti.

titanic.pivot_table("alive", ["sex", age, "survived"], columns="class", aggfunc = "count")

Hiç yorum yok:

Yorum Gönder