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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *