Pandy: jak używać aggfunc w funkcji crosstab().
Możesz użyć argumentu aggfunc w funkcji pandy crosstab() , aby utworzyć tabelę przestawną, która agreguje wartości przy użyciu określonej metryki:
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')
Domyślną wartością aggfunc jest „count”, ale możesz określić inne metody agregacji, takie jak średnia, mediana, suma, min, max itp.
W argumencie aggfunc możesz także określić wiele metod agregacji:
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])
Poniższe przykłady pokazują, jak w praktyce używać każdej z tych metod z następującą ramką DataFrame pand:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '], ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 25 2 AF 24 3 BG 39 4 BF 34 5 BF 20 6 BF 18 7 GC 17 8 GC 20 9 CF 19 10 CF 22
Przykład 1: Utwórz tabelę przestawną z wartością w aggfunc
Możemy użyć następującej funkcji crosstab() z argumentem aggfunc=’mean’ , aby utworzyć tabelę przestawną wyświetlającą średnią wartość punktów dla każdej pozycji i kombinacji drużyn:
#create crosstab that displays mean points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ') position F G team A 24.0 23.5 B 24.0 39.0 C 20.5 18.5
Oto jak zinterpretować wynik:
- Średnia punktów zawodników drużyny A na pozycji F wynosi 24 .
- Średnia punktów zawodników drużyny A na pozycji G wynosi 23,5 .
I tak dalej.
Możemy również użyć innej metryki agregacji, takiej jak wartość maksymalna:
#create crosstab that displays max points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ') position F G team At 24 25 B 34 39 C 22 20
Oto jak zinterpretować wynik:
- Maksymalna liczba punktów dla zawodników drużyny A na pozycji F wynosi 24 .
- Maksymalna liczba punktów dla zawodników drużyny A na pozycji G wynosi 25 .
I tak dalej.
Przykład 2: Utwórz tabelę przestawną z wieloma wartościami w aggfunc
Możemy użyć funkcji crosstab() z wieloma wartościami w argumencie aggfunc , aby zagregować wartości punktowe według wielu metryk dla każdej pozycji i kombinacji zespołu:
#create crosstab that displays min and max points by team and position p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) min max position F G F G team A 24 22 24 25 B 18 39 34 39 C 19 17 22 20
Oto jak zinterpretować wynik:
- Minimalna wartość punktowa zawodników drużyny A na pozycji F wynosi 24 .
- Minimalna wartość punktowa zawodników drużyny A na pozycji G wynosi 22 .
- Maksymalna wartość punktowa zawodników drużyny A na pozycji F wynosi 24 .
- Maksymalna wartość punktowa zawodników drużyny A na pozycji G wynosi 25 .
I tak dalej.
Uwaga : pełną dokumentację funkcji crosstab() pandy można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania związane z pandą:
Pandy: Jak utworzyć tabelę przestawną z wartościami procentowymi
Pandy: Jak korzystać z GroupBy i liczenia wartości
Pandy: Jak korzystać z GroupBy z liczbą pojemników