Python Pandas - Açıklayıcı İstatistikler

Çok sayıda yöntem, DataFrame üzerinde tanımlayıcı istatistikleri ve diğer ilgili işlemleri toplu olarak hesaplar. Bunların çoğu gibi toplamalarsum(), mean(), ama bazıları gibi sumsum(), aynı boyutta bir nesne üretin. Genel olarak konuşursak, bu yöntemler biraxisbağımsız değişken, tıpkı ndarray gibi . {toplam, std, ...}, ancak eksen ad veya tamsayı ile belirtilebilir

  • DataFrame - "dizin" (eksen = 0, varsayılan), "sütunlar" (eksen = 1)

Bir DataFrame oluşturalım ve bu nesneyi bu bölüm boyunca tüm işlemler için kullanalım.

Misal

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df

Onun output aşağıdaki gibidir -

Age  Name   Rating
0   25   Tom     4.23
1   26   James   3.24
2   25   Ricky   3.98
3   23   Vin     2.56
4   30   Steve   3.20
5   29   Smith   4.60
6   23   Jack    3.80
7   34   Lee     3.78
8   40   David   2.98
9   30   Gasper  4.80
10  51   Betina  4.10
11  46   Andres  3.65

toplam ()

İstenen eksen için değerlerin toplamını verir. Varsayılan olarak eksen dizindir (eksen = 0).

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.sum()

Onun output aşağıdaki gibidir -

Age                                                    382
Name     TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

Her bir sütun ayrı ayrı eklenir (Dizeler eklenir).

eksen = 1

Bu sözdizimi, çıktıyı aşağıda gösterildiği gibi verecektir.

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.sum(1)

Onun output aşağıdaki gibidir -

0    29.23
1    29.24
2    28.98
3    25.56
4    33.20
5    33.60
6    26.80
7    37.78
8    42.98
9    34.80
10   55.10
11   49.65
dtype: float64

anlamına gelmek()

Ortalama değeri verir

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.mean()

Onun output aşağıdaki gibidir -

Age       31.833333
Rating     3.743333
dtype: float64

std ()

Sayısal sütunların Bressel standart sapmasını döndürür.

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.std()

Onun output aşağıdaki gibidir -

Age       9.232682
Rating    0.661628
dtype: float64

Fonksiyonlar ve Açıklama

Şimdi Python Pandalarındaki Tanımlayıcı İstatistikler altındaki işlevleri anlayalım. Aşağıdaki tablo önemli işlevleri listelemektedir -

Sr.No. Fonksiyon Açıklama
1 Miktar() Boş olmayan gözlemlerin sayısı
2 toplam () Değerlerin toplamı
3 anlamına gelmek() Değerlerin Ortalaması
4 medyan() Değerlerin Ortanca Değeri
5 mod () Değerlerin modu
6 std () Değerlerin Standart Sapması
7 dk () Minimum değer
8 max () Maksimum değer
9 abs () Mutlak değer
10 prod () Değerlerin Çarpımı
11 cumsum () Kümülatif Toplam
12 cumprod () Kümülatif Ürün

Note- DataFrame Heterojen bir veri yapısı olduğundan. Genel işlemler tüm işlevlerle çalışmaz.

  • Gibi işlevler sum(), cumsum()hem sayısal hem de karakter (veya) dizesi veri öğeleriyle hatasız çalışır. Rağmenn pratikte, karakter kümelemeleri asla genel olarak kullanılmaz, bu işlevler herhangi bir istisna atmaz.

  • Gibi işlevler abs(), cumprod() DataFrame karakter veya dize verileri içerdiğinde istisna atar çünkü bu tür işlemler gerçekleştirilemez.

Verileri Özetleme

describe() işlevi, DataFrame sütunlarıyla ilgili istatistiklerin bir özetini hesaplar.

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.describe()

Onun output aşağıdaki gibidir -

Age         Rating
count    12.000000      12.000000
mean     31.833333       3.743333
std       9.232682       0.661628
min      23.000000       2.560000
25%      25.000000       3.230000
50%      29.500000       3.790000
75%      35.500000       4.132500
max      51.000000       4.800000

Bu işlev, mean, std ve IQRdeğerler. Ve işlev, karakter sütunlarını hariç tutar ve sayısal sütunlarla ilgili özet verir.'include'özetleme için hangi sütunların dikkate alınması gerektiğine ilişkin gerekli bilgileri iletmek için kullanılan argümandır. Değerlerin listesini alır; varsayılan olarak "sayı".

  • object - Dize sütunlarını özetler
  • number - Sayısal sütunları özetler
  • all - Tüm sütunları birlikte özetler (Liste değeri olarak geçmemelidir)

Şimdi, programda aşağıdaki ifadeyi kullanın ve çıktıyı kontrol edin -

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df.describe(include=['object'])

Onun output aşağıdaki gibidir -

Name
count       12
unique      12
top      Ricky
freq         1

Şimdi, aşağıdaki ifadeyi kullanın ve çıktıyı kontrol edin -

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','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 df. describe(include='all')

Onun output aşağıdaki gibidir -

Age          Name       Rating
count   12.000000        12    12.000000
unique        NaN        12          NaN
top           NaN     Ricky          NaN
freq          NaN         1          NaN
mean    31.833333       NaN     3.743333
std      9.232682       NaN     0.661628
min     23.000000       NaN     2.560000
25%     25.000000       NaN     3.230000
50%     29.500000       NaN     3.790000
75%     35.500000       NaN     4.132500
max     51.000000       NaN     4.800000