Groupwise

groupby()

  • Split (Rozdělení): Vybereš sloupec, podle kterého chceš seskupovat.
    • reviews.groupby('points')
  • Apply (Aplikace): Vybereš, co tě zajímá, a zvolíš funkci (matematickou operaci).
    • .price.min() (nejlevnější víno pro každý počet bodů)
  • Combine (Spojení): Pandas automaticky spojí výsledky do nové tabulky nebo řady. reviews.groupby('points').price.min() Seznam, kde uvidíš každý počet bodů (např. 80, 81… 100) a u něj cenu úplně nejlevnějšího vína, které toto hodnocení dostalo.

reviews.groupby('winery').apply(lambda df: df.title.iloc[0])

Seznam všech vinařství. U každého vinařství uvidíš název (title) prvního vína, na které Pandas v tabulce narazil.

reviews.groupby(['country', 'province']).apply(lambda df: df.loc[df.points.idxmax()])

“Výběr šampionů”. Pro každý stát a jeho provincii (např. Itálie Toskánsko) to najde celý řádek s nejlépe hodnoceným vínem. reviews.groupby(['country']).price.agg([len, min, max])

“Statistický přehled cen podle zemí”. Pro každý stát uvidíš tabulku, která má tři sloupce.

sorting

countries_reviewed = countries_reviewed.reset_index()
# Index se změní na obyčejná čísla (0, 1, 2...)
 
countries_reviewed.sort_values(by='len')
# Seřadí tabulku podle sloupce `len` (počet recenzí). od nejmenšího po největší
 
countries_reviewed.sort_values(by='len', ascending=False)
# Sestupně (**od největšího po nejmenší**).
 
countries_reviewed.sort_index()
# Pokud jsi předtím udělal `reset_index()`, seřadí se to podle těch čísel 0, 1, 2...
 
countries_reviewed.sort_values(by=['country', 'len'])
# Nejdříve seřaď všechna data abecedně podle `country`. Pokud by se stalo, že by jedna země měla víc řádků (což v tomto případě po groupby nemá, ale obecně ano), tak tyto řádky v rámci té země seřadí podle `len`.

value counts

  • jablko: 3

  • banán: 2

  • pomeranč: 1