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