Pandy: jak korzystać z grupowania według i sortowania w grupach


Możesz użyć poniższej składni, aby pogrupować wiersze w ramce DataFrame pandy, a następnie posortować wartości w grupach:

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: używanie grupowania według i sortowania w grupach w Pandach

Załóżmy, że mamy następującą ramkę danych pand, która pokazuje sprzedaż dokonaną w dwóch różnych sklepach:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

Możemy użyć następującej składni, aby pogrupować wiersze według kolumny sklepu i posortować je w kolejności malejącej na podstawie kolumny sprzedaży :

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

Zauważ, że możemy również usunąć argument rosnąco=Fałsz, aby posortować wartości sprzedaży w kolejności rosnącej:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

Należy pamiętać, że funkcja head() wyświetla tylko pierwszych 5 wartości z każdej grupy.

Aby wyświetlić n górnych wartości na grupę, po prostu użyj zamiast tego head(n) .

Uwaga : pełną dokumentację operacji GroupBy w pandach znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Pandy: jak obliczyć skumulowaną sumę na grupę
Pandy: jak liczyć unikalne wartości według grupy
Pandy: jak obliczyć korelację według grup

Dodaj komentarz

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