Python - Merkezi Eğilimi Ölçme

Matematiksel olarak merkezi eğilim, bir veri setinin değerlerinin merkezini veya konumunun dağılımını ölçmek anlamına gelir. Veri setindeki verilerin ortalama değeri hakkında bir fikir verir ve ayrıca değerlerin veri setinde ne kadar geniş yayıldığını gösterir. Bu da, mevcut veri setine uyan yeni bir girdi şansını ve dolayısıyla başarı olasılığını değerlendirmeye yardımcı olur.

Pandas python kütüphanesindeki yöntemler kullanılarak hesaplanabilen üç ana merkezi eğilim ölçüsü vardır.

  • Ortalama - Değerlerin toplamının değer sayısı ile bölünmesi olan verilerin Ortalama değeridir.

  • Medyan - Değerler artan veya azalan sırada düzenlendiğinde dağılımdaki orta değerdir.

  • Mod - Bir dağıtımda en sık görülen değerdir.

Ortalama ve Medyan Hesaplanıyor

Pandaların işlevleri, bu değerleri hesaplamak için doğrudan kullanılabilir.

import pandas as pd

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','Chanchal','Gasper','Naviya','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])}

#Create a DataFrame
df = pd.DataFrame(d)
print "Mean Values in the Distribution"
print df.mean()
print "*******************************"
print "Median Values in the Distribution"
print df.median()

Onun output aşağıdaki gibidir -

Mean Values in the Distribution
Age       31.833333
Rating     3.743333
dtype: float64
*******************************
Median Values in the Distribution
Age       29.50
Rating     3.79
dtype: float64

Hesaplama Modu

Mod, verilerin sürekli olmasına veya maksimum frekansı olan değerlerin olup olmamasına bağlı olarak bir dağıtımda mevcut olabilir veya olmayabilir. Modu bulmak için aşağıda basit bir dağılım alıyoruz. Burada dağılımda maksimum frekansa sahip bir değerimiz var.

import pandas as pd

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','Chanchal','Gasper','Naviya','Andres']),
   'Age':pd.Series([25,26,25,23,30,25,23,34,40,30,25,46])}
#Create a DataFrame
df = pd.DataFrame(d)

print df.mode()

Onun output aşağıdaki gibidir -

Age      Name
0   25.0    Andres
1    NaN  Chanchal
2    NaN    Gasper
3    NaN      Jack
4    NaN     James
5    NaN       Lee
6    NaN    Naviya
7    NaN     Ricky
8    NaN     Smith
9    NaN     Steve
10   NaN       Tom
11   NaN       Vin