Python Pandas - statystyki opisowe

Wiele metod zbiorczo oblicza statystyki opisowe i inne powiązane operacje na DataFrame. Większość z nich to agregacjesum(), mean(), ale niektóre z nich, jak sumsum(), produkują obiekt o tym samym rozmiarze. Ogólnie rzecz biorąc, te metody wymagają plikuaxisargument, podobnie jak ndarray. {suma, std, ...}, ale oś można określić za pomocą nazwy lub liczby całkowitej

  • DataFrame - „indeks” (oś = 0, domyślnie), „kolumny” (oś = 1)

Stwórzmy DataFrame i używajmy tego obiektu w tym rozdziale do wszystkich operacji.

Przykład

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

Jego output wygląda następująco -

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

suma()

Zwraca sumę wartości dla żądanej osi. Domyślnie oś jest indeksem (oś = 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()

Jego output wygląda następująco -

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

Każda kolumna jest dodawana indywidualnie (dołączane są ciągi znaków).

oś = 1

Ta składnia da dane wyjściowe, jak pokazano poniżej.

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)

Jego output wygląda następująco -

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

oznaczać()

Zwraca średnią wartość

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()

Jego output wygląda następująco -

Age       31.833333
Rating     3.743333
dtype: float64

std ()

Zwraca odchylenie standardowe Bressela z kolumn liczbowych.

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()

Jego output wygląda następująco -

Age       9.232682
Rating    0.661628
dtype: float64

Funkcje i opis

Przyjrzyjmy się teraz funkcjom statystyk opisowych w Python Pandas. Poniższa tabela zawiera listę ważnych funkcji -

Sr.No. Funkcjonować Opis
1 liczyć() Liczba obserwacji niezerowych
2 suma() Suma wartości
3 oznaczać() Średnia wartości
4 mediana() Mediana wartości
5 tryb() Tryb wartości
6 std () Odchylenie standardowe wartości
7 min () Minimalna wartość
8 max () Maksymalna wartość
9 abs () Całkowita wartość
10 szturchać() Produkt wartości
11 cumsum () Suma skumulowana
12 cumprod () Produkt zbiorczy

Note- Ponieważ DataFrame jest heterogeniczną strukturą danych. Operacje ogólne nie działają ze wszystkimi funkcjami.

  • Funkcje takie jak sum(), cumsum()działają z elementami danych numerycznymi i znakowymi (lub) bez żadnego błędu. Chociażn W praktyce agregacje znaków nie są generalnie używane, te funkcje nie zgłaszają żadnych wyjątków.

  • Funkcje takie jak abs(), cumprod() zgłoś wyjątek, gdy DataFrame zawiera dane znakowe lub ciągowe, ponieważ nie można wykonać takich operacji.

Podsumowanie danych

Plik describe() funkcja oblicza podsumowanie statystyk dotyczących kolumn DataFrame.

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()

Jego output wygląda następująco -

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

Ta funkcja daje mean, std i IQRwartości. Funkcja wyklucza kolumny znakowe i dane podsumowanie dotyczące kolumn numerycznych.'include'jest argumentem używanym do przekazywania niezbędnych informacji dotyczących kolumn, które należy uwzględnić przy podsumowaniu. Przyjmuje listę wartości; domyślnie „numer”.

  • object - Podsumowuje kolumny typu String
  • number - Podsumowuje kolumny liczbowe
  • all - Podsumowuje wszystkie kolumny razem (nie należy przekazywać ich jako wartości listy)

Teraz użyj poniższej instrukcji w programie i sprawdź dane wyjściowe -

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'])

Jego output wygląda następująco -

Name
count       12
unique      12
top      Ricky
freq         1

Teraz użyj poniższej instrukcji i sprawdź dane wyjściowe -

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')

Jego output wygląda następująco -

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