Zřetězení dvou nebo více datových rámců lze provést pomocí metody pandas.concat(). concat() v Pandas funguje tak, že kombinuje datové rámce napříč řádky nebo sloupci. Můžeme spojit dva nebo více datových rámců buď podél řádků (osa=0) nebo podél sloupců (osa=1). V tomto článku uvidíme, jak můžeme zřetězit nebo přidat dva nebo více Dataframe Pandas .
Zřetězit dva nebo více datových rámců Pandas Python
Existují různé metody zřetězení datových rámců vertikálně nebo horizontálně. Zde diskutujeme o některých obecně používaných metodách zřetězení datových rámců vertikálně nebo horizontálně. to jsou následující.
- Zřetězení dvou datových rámců Pandas
Using>pd.merge()>ke zřetězení dvou datových rámců-
pd.DataFrame.reindex()>pro vertikální zřetězení s indexovým zarovnáním Using pd.concat()>ssort=False>pro rychlejší zřetězení- Použití pandas.concat() ke zřetězení dvou datových rámců
- Zřetězit více datových rámců pomocí pandas.concat()
- Použitím pandas.join() ke spojení dvou datových rámců
- Použitím DataFrame.append() ke zřetězení dvou datových rámců
Vytvořte ukázkový DataFrame
Vytvořte dva datové rámce, které nyní spojíme. Pro vytváření datových rámců budeme používat Numpy a pandy.
Python3
pole objektů v Javě
import> pandas as pd> import> numpy as np> df>=> pd.DataFrame({>'Courses'>: [>'GFG'>,>'JS'>,>'Python'>,>'Numpy'>],> >'Fee'>: [>20000>,>25000>,>22000>,>24000>]})> df1>=> pd.DataFrame({>'Courses'>: [>'Matplotlib'>,>'SSC'>,>'CHSL'>,>'Java'>],> >'Fee'>: [>25000>,>25200>,>24500>,>24900>]})> df2>=> pd.DataFrame({>'Duration'>: [>'30day'>,>'40days'>,>'35days'>,>'60days'>],> >'Discount'>: [>1000>,>2300>,>2500>,>2000>]})> print>(>'DataFrame 1:'>)> print>(df)> print>(>'DataFrame 2:'>)> print>(df1)> print>(>'DataFrame 3:'>)> print>(df2)> |
>
>
Výstup:
DataFrame 1: Courses Fee 0 GFG 20000 1 JS 25000 2 Python 22000 3 Numpy 24000 DataFrame 2: Courses Fee 0 Matplotlib 25000 1 SSC 25200 2 CHSL 24500 3 Java 24900 DataFrame 3: Duration Discount 0 30day 1000 1 40days 2300 2 35days 2500 3 60days 2000>
Zřetězení dvou datových rámců Pandas vertikálně a horizontálně
Předáme dva datové rámce pd.concat() metodou ve formě seznamu a uveďte, ve které ose chcete spojit, tzn. osa=0 spojovat se podél řad, osa=1 spojovat podél sloupů.
Python3
# concatenating df1 and df2 along rows> vertical_concat>=> pd.concat([df, df1], axis>=>0>)> # concatenating df3 and df4 along columns> horizontal_concat>=> pd.concat([df1, df2], axis>=>1>)> print>(>'Vertical:'>)> print>(vertical_concat)> print>(>'Horizontal:'>)> print>(horizontal_concat)> |
>
>
Výstup:
Vertical: Courses Fee 0 GFG 20000 1 JS 25000 2 Python 22000 3 Numpy 24000 0 Matplotlib 25000 1 SSC 25200 2 CHSL 24500 3 Java 24900 Horizontal: Courses Fee Duration Discount 0 Matplotlib 25000 30day 1000 1 SSC 25200 40days 2300 2 CHSL 24500 35days 2500 3 Java 24900 60days 2000>
Zřetězení datových rámců pomocí pd.merge() ke spojení dvou datových rámců
The method> 'pd.merge()'> in pandas is used to concatenate DataFrames either vertically or horizontally. It combines two DataFrames based on common columns using a merge operation. The 'how' parameter in pd.merge() specifies the type of merge (inner, outer, left, or right), determining how the DataFrames are combined.>
Python3
result>=> pd.merge(df, df1, on>=>'Courses'>, how>=>'outer'>, suffixes>=>(>'_df1'>,>'_df2'>)).fillna(>0>)> result[>'Fee'>]>=> result[>'Fee_df1'>]>+> result[>'Fee_df2'>]> result>=> result[[>'Courses'>,>'Fee'>]]> print>(result)> |
>
>
Výstup :
Courses Fee 0 GFG 20000.0 1 JS 25000.0 2 Python 22000.0 3 Numpy 24000.0 4 Matplotlib 25000.0 5 SSC 25200.0 6 CHSL 24500.0 7 Java 24900.0>
Using pd.DataFrame.reindex()>pro vertikální zřetězení s indexovým zarovnáním
Metoda pd.DataFrame.reindex() se používá pro vertikální zřetězení DataFrames v pandách. Zarovná indexy datových rámců a zajistí správné stohování. Je to zásadní krok při vertikálním kombinování datových rámců pomocí zřetězení v pandách.
Příklad: V tomto příkladu kód zřetězí dva datové rámce pandy,df1>adf>, ignoruje jejich původní indexy a uloží výsledek do proměnnéresult>. Poté resetuje index zřetězeného DataFrame
Python3
java kolekce
result>=> pd.concat([df1, df], ignore_index>=>True>)># Concatenate and reset index> result>=> result.reindex(>range>(>8>))> print>(result)> |
>
>
Výstup :
Courses Fee 0 Matplotlib 25000 1 SSC 25200 2 CHSL 24500 3 Java 24900 4 GFG 20000 5 JS 25000 6 Python 22000 7 Numpy 24000>
Using pd.concat()>ssort=False>pro rychlejší zřetězení
Metoda ' pd.concat() ` v knihovně pandas Pythonu se používá ke kombinování datových rámců buď svisle (podél řádků) nebo vodorovně (podél sloupců). Parametr `sort=False` se používá ke zvýšení rychlosti zřetězení tím, že zakáže řazení výsledného DataFrame.
Příklad: V tomto příkladu kód používá knihovnu pandas ke zřetězení dvou DataFrame, df1 a df, podél jejich řad (osa=0). Parametr sort=False zabraňuje řazení výsledného DataFrame podle názvů sloupců.
Python3
result>=> pd.concat([df1, df], sort>=>False>)> print>(result)> |
>
>
Výstup :
Courses Fee 0 Matplotlib 25000 1 SSC 25200 2 CHSL 24500 3 Java 24900 0 GFG 20000 1 JS 25000 2 Python 22000 3 Numpy 24000>
Zřetězení dvou nebo více datových rámců Pandas v Pythonu pomocí pandas.concat()
`pandas.concat()` kombinuje dva DataFrame buď vertikálně nebo horizontálně, skládá je na sebe nebo vedle sebe, což poskytuje flexibilní způsob zřetězení dat podél určených os.
Příklad :V tomto příkladupd.concat()>funkce se používá k vertikálnímu zřetězení těchto datových rámců, čímž vznikne nový datový rámec s názvemresult>, aignore_index=True>se používá k resetování indexu. Vytiskne se konečný výsledek.
Python3
result>=> pd.concat([df, df1], ignore_index>=>True>)> print>(result)> |
>
>
Výstup:
Courses Fee 0 GFG 20000 1 JS 25000 2 Python 22000 3 Numpy 24000 4 Matplotlib 25000 5 SSC 25200 6 CHSL 24500 7 Java 24900>
Spojit více datových rámců v Pythonu pomocí pandas.concat()
Metoda pandas.concat() se používá ke kombinování datových rámců buď svisle (podél řádků) nebo vodorovně (podél sloupců). Vezme seznam DataFrames jako vstup a zřetězí je na základě zadané osy (0 pro vertikální, 1 pro horizontální).
Příklad: Tento příklad používá pandy k vytvoření tří datových rámců (df>,df1>, adf2>) představující informace o kurzech, poplatcích, délce trvání a slevách. Poté tyto datové rámce vertikálně spojí pomocípd.concat()>, čímž se vytvoří nový datový rámec s názvemresult>s resetovaným indexem a vytiskne se výsledný datový rámec.
Python3
result>=> pd.concat([df, df1, df2], ignore_index>=>True>)> print>(result)> |
>
>
Výstup:
Courses Fee Duration Discount 0 GFG 20000 NaN NaN 1 JS 25000 NaN NaN 2 Python 22000 NaN NaN 3 Numpy 24000 NaN NaN 4 Matplotlib 25000 NaN NaN 5 SSC 25200 NaN NaN 6 CHSL 24500 NaN NaN 7 Java 24900 NaN NaN 8 NaN NaN 30day 1000.0 9 NaN NaN 40days 2300.0 10 NaN NaN 35days 2500.0 11 NaN NaN 60days 2000.0>
Pandas Concat Two DataFrames pomocí pandas.join() pro spojení dvou DataFrames
Thepandas.join()>metoda se používá ke zřetězení datových rámců vertikálně nebo horizontálně na základě zadaných sloupců, přičemž se provádí spojení ve stylu SQL. Kombinuje řádky nebo sloupce ze dvou DataFrame na základě společných hodnot sloupců, což umožňuje vnitřní, vnější, levé nebo pravé spojení.
Příklad: V tomto příkladu jejoin>metoda se používá ke kombinaci těchto datových rámců na základě jejich indexů, což vede k novému datovému rámci s názvemresult>, která je vytištěna.
Python3
result>=> df.join(df1)> print>(result)> |
>
>
Výstup:
Courses Fee Duration Discount 0 GFG 20000 30day 1000 1 JS 25000 40days 2300 2 Python 22000 35days 2500 3 Numpy 24000 60days 2000>
Zkombinujte dva datové rámce v Pythonu pomocí DataFrame.append()
' DataFrame.append() ` metoda v pandách se používá ke svislému spojení dvou DataFrame, přidáním řádků jednoho DataFrame pod druhý. Vrátí nový DataFrame s kombinovanými daty. Ujistěte se, že oba DataFrame mají stejné sloupce.
odstranit mezipaměť npm
Příklad : V tomto příkladu používámeappend()>výsledkem je nový datový rámec s názvemresult>s resetovacím indexem, který je vytištěn.
Python3
result>=> df.append(df1, ignore_index>=>True>)> print>(result)> |
>
>
Výstup:
Courses Fee 0 GFG 20000 1 JS 25000 2 Python 22000 3 Numpy 24000 4 Matplotlib 25000 5 SSC 25200 6 CHSL 24500 7 Java 24900>