Velké datové zdroje jsou chaotické, zvláště když je musíte stahovat z webových stránek, serverů nebo jiných zdrojů dat.

Aplikace založené na uživatelském rozhraní, jako je MS Excel, jsou dobré pro práci s jednoduchými datovými sadami, ale mohou mít problémy, když se data zvětší. To je dobrý důvod, proč přejít na Python a provádět složitější operace založené na datech.

Knihovna třetí strany Pythonu, Pandas, jde dlouhou cestou, aby vám pomohla rychle třídit vaše stávající datové sady. Pokud chcete třídit data v Pythonu, tento článek se zabývá několika způsoby, jak tohoto úkolu dosáhnout.

Předpoklady pro použití Pythonu k řazení dat

Před tříděním dat v Pythonu se musíte postarat o několik předpokladů:

  • Stáhněte si Python IDE. Můžete použít a IDE kompatibilní s Pythonem, jako jsou mimo jiné Jupyter Notebook, PyCharm a Spyder. Každá z nich je kompatibilní se všemi verzemi Pythonu.
  • Nainstalujte pandy. Budete potřebovat balíček pandy, který můžete nainstalovat pomocí PIP nebo vaší preferovanou metodou.
  • instagram viewer
  • Ukázková datová sada. Stáhnout a ukázková datová sada k procvičování uvedených kódů. Alternativně můžete tyto postupy použít pro vaše výhradní data.

Import knihovny Pandas v Pythonu

Pandas je knihovna Pythonu od třetí strany, kterou můžete použít ke zpracování Excelu, CSV a dalších datových formátů.

Chcete-li pracovat s ukázkovým souborem Excel, začněte importem knihovny pandas. Poté budete používat import procedura pro čtení dat Excelu do Pythonu.

Chcete-li importovat knihovnu

import pandy tak jako pd

Vytvořte nový datový rámec pro načtení dat aplikace Excel

soubor = "Ukázka - Superstore.xls"
df = pd.read_excel (soubor)
df.hlava()

Kde:

  • df je objekt DataFrame, který ukládá importovaná data.
  • pd je alias knihovny Pandas.
  • read_excel je metoda pro čtení souboru Excel do Pythonu.
  • soubor je cesta k souboru aplikace Excel.
  • hlava je metoda, která vrací prvních pět řádků z DataFrame.

Jakmile váš program načte data, můžete použít mnoho dostupných metod DataFrame k jejich třídění různými způsoby.

1. Řazení podle jednoho sloupce v DataFrame

Protože vaše data budou mít mnoho řádků a sloupců, budete často chtít seřadit data na základě konkrétního sloupce nebo sloupců.

Python standardně třídí data ve vzestupném pořadí. Pokud chcete změnit pořadí řazení, musíte to výslovně uvést ve svém kódu.

Seřadit podle jednoho sloupce (vzestupně)

df.sort_values ​​(podle = "zákaznické identifikační číslo")

Seřadit podle jednoho sloupce (sestupně)

Nastav vzestupně parametr k Nepravdivé seřadit sloupec v sestupném pořadí.

df.sort_values ​​(podle = "zákaznické identifikační číslo", vzestupně=nepravda)

Kde:

  • df je objekt DataFrame obsahující data.
  • seřadit_hodnoty je metoda řazení podle datových hodnot.
  • podle je parametr pro definování názvu sloupce.
  • vzestupně je parametr pro definování pořadí řazení.

2. Řazení více sloupců v DataFrame

Pokud to vaše požadavky vyžadují, můžete také své DataFrame(y) třídit na základě více sloupců najednou. V takovém scénáři musíte definovat odkazy na sloupce v seznamu.

Seřadit podle více sloupců vzestupně

df.sort_values ​​(podle = ["zákaznické identifikační číslo", "Město"])

Seřadit podle více sloupců sestupně

Použijte funkci vzestupně = nepravda seřadit sloupce v sestupném pořadí. Pamatujte, že musíte zadat názvy sloupců v seznamu, abyste je seřadili současně.

df.sort_values ​​(podle = ["zákaznické identifikační číslo", "Město"], vzestupně = False)

Řazení podle více sloupců v různých pořadích řazení

Co se stane, když budete chtít seřadit jeden sloupec sestupně a druhý vzestupně, když se základy třídění neshodují? Chcete-li tyto požadavky začlenit, musíte svůj kód mírně upravit.

Například pro třídění Kraj a Město sloupce v sestupném a vzestupném pořadí:

df.sort_values ​​(podle = ["Kraj", "Město"], vzestupně = [False, True])

Vysvětlení tohoto kódu je jednoduché; definujete název DataFrame a předáte jej seřadit_hodnoty funkce spolu s názvy sloupců v seznamu. Měli byste použít Boolean hodnoty k určení pořadí řazení.

Volání funkce tímto způsobem znamená, že Python bude nejprve řadit podle sloupce Region DataFrame v sestupném pořadí. Poté budou řádky s identickým Regionem dále seřazeny podle sloupce Město ve vzestupném pořadí.

3. Jak řadit sloupce v DataFrame podle indexu

Proměnná index je výchozí hodnota přiřazená každému řádku v datovém rámci Pythonu. Můžete definovat hodnoty indexu nebo nechat Python, aby si hodnotu indexu nastavil sám.

Chcete-li data seřadit podle jejich indexové hodnoty, můžete použít index_řazení funkce. Tato funkce řadí spíše na základě indexu než na základě hodnot obsažených v původní datové sadě.

df.index_řazení()

Stejně jako u sort_values ​​můžete předat vzestupně parametr k určení směru řazení. Například předejte hodnotu Nepravdivé seřadit data v sestupném pořadí:

df.sort_index (vzestupně = Nepravdivé)

4. Řazení sloupců v datovém rámci namísto řádků

Místo řazení řádků v DataFrame můžete třídit jeho sloupce. Můžete tak učinit voláním metody sort_index a jejím předáním osa parametr s hodnotou 1:

df.sort_index (osa=1)

Tento krok seřadí DataFrame podle jeho sloupců ve vzestupném pořadí. Chcete-li seřadit sloupce DataFrame v sestupném pořadí, můžete zadat pořadí řazení v kroku řazení.

df.sort_index (osa=1, vzestupně = Nepravdivé)

5. Úprava datového rámce při jeho řazení

Tyto dvě metody řazení fungují tak, že vrací kopii původních dat v jejich nově seřazeném stavu. Chcete-li ušetřit úložný prostor nebo jednoduše napsat stručnější kód, můžete místo toho upravit původní data DataFrame. Každá metoda přijímá na místě booleovský parametr, který upravuje data spíše než vrací upravenou kopii.

df.sort_values ​​(podle = ["zákaznické identifikační číslo", "Město"], vzestupně = nepravda, na místě = pravda)

Naučte se třídit data v Pythonu

Python replikuje mnoho vestavěných funkcí Excelu pomocí několika řádků kódu. Od třídicích procedur po vytváření propracovaných kontingenčních tabulek na vašich datech si to pojmenujete a můžete to udělat v Pythonu.

Pokud jste v Pythonu stále noví a učíte se lana, tyto kroky vylepší vaše kódovací dovednosti poměrně snadno.