logo

Jak zkombinovat dva datové rámce v Pythonu - Pandas

pandy

Pandas je vestavěná knihovna v Pythonu, která se používá pro práci s relačními daty v programovacím jazyce Python. Má mnoho funkcí a datových struktur, které pomáhají při operacích relačních dat.

Pokud jsou data uložena ve formě řádků a sloupců nebo dvourozměrných dat, obecně se u pand nazývají datové rámce.

Pokud máme dva datové rámce, pak je pomocí pand můžeme spojit nebo sloučit do jednoho datového rámce. Pandy poskytují nastavenou logiku pro kombinování dat dvou různých datových rámců a také logiku pro jejich porovnání.

1. Použití funkce concat().

V pythonu můžeme zřetězit dva datové rámce pomocí funkce concat() Pandas. Data můžeme zřetězit buď po řádcích, nebo po sloupcích. Tato funkce sloučí data na jedné ose (řádek nebo sloupec) a provede nastavenou logiku na jiné ose (jiný index).

Příklad:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

Výstup:

Jak zkombinovat dva datové rámce v Pythonu - Pandas

Vysvětlení:

Ve výše uvedeném kódu jsme nejprve importovali knihovnu Pandas do souboru. Poté jsme vytvořili dva datové rámce, kde každý datový rámec obsahuje tři sloupce a čtyři řádky. Poté jsme použili funkci concat, která tyto dva datové rámce zřetězí po řadách, a pomocí funkce zobrazení jsme to vytiskli na obrazovku.

2. Použití spojení v pandách

Pochopili jsme koncept spojení v databázi, kde spojujeme dvě tabulky na základě nějakého společného atributu. Stejná metoda je použitelná při zřetězení datových rámců. V jednoduché metodě concat() jsme sloučili všechny řádky na sebe a vytvořili nový datový rámec. Ve spojení definujeme, jaký typ spojení chceme na tabulce provést, zda se jedná o vnitřní spojení nebo vnější spojení. Bez ohledu na typ spojení, vnitřní spojení (průnik) nebo vnější spojení (sjednocení), bude definováno v atributu spojení.

Příklad:

porovnávací řetězec java
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

Výstup:

Jak zkombinovat dva datové rámce v Pythonu - Pandas

Vysvětlení:

Ve výše uvedeném kódu máme dva daraframy, které oba obsahují dva sloupce a čtyři řádky. Oba datové rámce mají různé názvy sloupců a ve funkci concat() jsme použili vnitřní spojení, které přebírá část průniku.

V atributu axis jsme inicializovali hodnotu jedna, takže jsme dostali celá data.

Příklad:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Výstup:

sql vybrat z více tabulek
Jak zkombinovat dva datové rámce v Pythonu - Pandas

Protože neexistuje žádný společný atribut a bylo použito vnitřní spojení, dostali jsme jako výstup prázdný datový rámec. Pokud je v obou datových rámcích společný atribut:

Příklad:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Výstup:

Jak zkombinovat dva datové rámce v Pythonu - Pandas

Vysvětlení:

Ve výše uvedeném kódu máme jeden atribut, 'id', který je společný, takže datový rámec je vytvořen pouze na základě společných atributů.

3. Použití metody append().

Místo metody concat() můžeme použít metodu append(). Tato metoda append() se aplikuje na jeden z datových rámců.

Příklad:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

Výstup:

Jak zkombinovat dva datové rámce v Pythonu - Pandas

Vysvětlení:

Ve výše uvedeném kódu jsme sloučili dva datové rámce pomocí metody append.