Pandas.Dropna () - Příklad použití - případy Pandas.Dropna ()

Obsah:

Anonim

Úvod do Pandas.Dropna ()

Pythonova open-source knihovna Pandas je nepochybně nejrozšířenější knihovnou pro vědu a analýzu dat. Je to také výhodný balíček pro operace zpracování dat ad hoc. Kredit jde do jeho extrémně flexibilní reprezentace dat pomocí DataFrames a arzenálu funkcí vystavených manipulaci s daty přítomnými v těchto datových rámcích. Jakékoli problémy se skutečnými daty způsobí problém chybějících dat a je nezbytné, aby se o takové datové body postaralo správným způsobem. Zpracování chybějících dat jakýmkoli vhodným způsobem je podporováno touto funkcí, Pandas.Dropna () .

Co přesně jsou Pandas.Dropna ()?

Stránka Pydata může být označena jako oficiální definice funkce.

Zobrazená hlavička funkce je následující (spolu s výchozími hodnotami parametrů):

DataFrame.dropna(self, axis=0, how='any', thresh=None, subset=None, inplace=False)

Parametry (kromě sebe (samotný objekt datového rámce)) uvedené v definici funkce jsou následující:

  • osa: Označuje orientaci (řádek nebo sloupec), ve které jsou data vynechána. Možné hodnoty jsou 0 nebo 1 (také „index“ nebo „sloupce“). 0 / 'index' představuje klesající řádky a 1 / 'sloupce' představují klesající sloupce.
  • how: Určuje scénář, ve kterém musí být zrušen sloupec / řádek obsahující nulovou hodnotu. Hodnoty jsou „any“ nebo „all“. 'all' zruší řádek / sloupec, pouze pokud jsou všechny hodnoty v řádku / sloupci nulové. 'any' upustí řádek / sloupec, když je alespoň jedna hodnota v řádku / sloupci null.
  • thresh: Určuje minimální počet ne-NA hodnot v řádku / sloupci, aby byl zohledněn v konečném výsledku. Jakýkoli řádek / sloupec s počtem non-NA hodnot <thresh value je odstraněn bez ohledu na další předané parametry. Když thresh = none, bude tento filtr ignorován.
  • podmnožina: osa určuje, zda je třeba zahodit řádky / sloupce. Podmnožina vezme seznam sloupců / řádků (naproti ose), které mají být prohledávány hodnoty Null / NA namísto celého seznamu sloupců / řádků.
  • inplace: Jako dobrý postup se původní DataFrame (nebo reprezentace dat) nezmění, ale vrací se samostatná kopie se změnami (tj. zrušené řádky / sloupce). Atribut inplace vám poskytuje flexibilitu při úpravě samotné původní datové struktury.

Nyní, když máme obecnou představu o parametrech vystavených dropna (), pojďme se podívat na některé možné scénáře chybějících dat a jak je řešíme.

Příklad použití - případy Pandas.Dropna ()

Níže jsou uvedeny příklady pandas.dropna ():

Import pand: Aby bylo možné použít Dropna (), musí existovat DataFrame. K vytvoření DataFrame je třeba importovat knihovnu panda (zde žádné překvapení). My pohodlně importujeme alias pd do referenčních objektů pod modulem. Pro definování nulových hodnot se budeme držet numpy.nan. Budeme tedy importovat knihovnu numpy s aliasem np:

Kód:

In (1): import pandas as pd
In (2): import numpy as np

1. Vytvořte objekt DataFrame pro manipulaci

Po importu pand jsou ve vašem pracovním prostoru k dispozici všechny metody, funkce a konstruktéři. Vytvořme tedy DataFrame, který nám pomůže ukázat použití dropna ().

Kód:

In (3): df = pd.DataFrame(
('Company':('Google', 'Amazon', 'Infosys', 'Directi'),
'Age':('21', '23', '38', '22'),
'NetWorth ($ bn)':(300, np.nan, np.nan, 1.3),
'Founder':(np.nan, np.nan, np.nan, np.nan),
'Headquarter-Country':('United States', np.nan, 'India', 'India') ))
In (4): print(df)
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
1 Amazon 23 NaN NaN NaN
2 Infosys 38 NaN NaN India
3 Directi 22 1.3 NaN India

S tištěným datovým rámečkem bude manipulováno v naší ukázce níže.

2. Vypuštění řádků vs. sloupců

Parametr osy se používá k přetažení řádků nebo sloupců, jak je uvedeno níže:

Kód:

In (5): df.dropna(axis=1)

Výstup:

Out(5):
Company Age
0 Google 21
1 Amazon 23
2 Infosys 38
3 Directi 22

Jakýkoli sloupec obsahující alespoň 1 NaN jako hodnotu buňky je zrušen. Uvidíme, jak budou řádky (osa = 0) fungovat.
Poznámka : Toto je výchozí chování, když osa není explicitně zadána.

Kód:

In (6): df.dropna(axis=0)

Výstup:

Out(6):
Empty DataFrame
Columns: (Company, Age, NetWorth ($ bn), Founder, Headquarter-Country) Index: ()

Hmm, takže ve vráceném DataFrame už nejsou žádná data! To samozřejmě není zamýšlené chování. Uvidíme, jak to opravit.

3. Použití atributu podmnožiny

Předchozí operace klesaly na základě všech sloupců, když osa = 0. Protože existuje sloupec Zakladatel, který má pouze nulové hodnoty, jsou všechny řádky zrušeny. Určíme sloupec, který bude použit pro filtrování:

Kód:

In (7): df.dropna(axis=0, subset=('NetWorth ($ bn)'))

Výstup:

Out(7):
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
3 Directi 22 1.3 NaN India

Nyní, jak vidíme, jsou zrušeny pouze záznamy s Nanvalue ve sloupci Networth. Vrácený DataFrame může být znovu upraven opětovným použitím dropna () pro odfiltrování sloupců předáním osy = 1.

4. Použití parametru How Parameter

Ve výchozím nastavení dropna () vypustí celý řádek / sloupec, i když chybí pouze jedna hodnota. Rychlá odklápěcí strana vystavená má klesnout, pouze pokud jsou všechny hodnoty v řádku / sloupci nulové. Toho je dosaženo nastavením how = 'all' namísto how = 'any' (výchozí chování).

Kód:

In (8): df.dropna(axis=1, how='all')

Výstup:

Out(8):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Výsledný DataFrame lze nyní použít pro vyřazení řádků / sloupců se složitější logikou, pokud je to požadováno.

5. Získání kontroly prostřednictvím Thresh

Parametr mlácení je pravděpodobně nejmocnějším nástrojem, pokud je vhodně kombinován se zbytkem.

Kód:

In (17): df.dropna(axis=1, thresh=2)

Výstup:

Out(17):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Nastavením osy = 1 a thresh = 2 zůstanou zachovány pouze ty sloupce, které mají alespoň 2 hodnoty bez NaN.

Závěr

Výše uvedené příklady jsou svou povahou zjednodušené, přesto jsou dostatečně silné, aby se vypořádaly s většinou problémů, s nimiž se můžete v reálných situacích setkat. Přesto by člověk měl praktikovat kombinaci různých parametrů, aby měl křišťálově jasné porozumění jejich použití a rychlost výstavby při jejich aplikaci.

Doporučené články

Toto je průvodce Pandas.Dropna (). Zde diskutujeme, co je Pandas.Dropna (), parametry a příklady. Další informace naleznete také v dalších souvisejících článcích.

  1. Co je Pandas
  2. NLP v Pythonu
  3. Abstraktní třída v Pythonu
  4. Factorial v Pythonu
  5. Věcný program v JavaScriptu