2 つ以上の Pandas DataFrame を連結するにはどうすればよいですか?
2 つ以上のデータ フレームの連結は、pandas.concat() メソッドを使用して実行できます。 Pandas の concat() は、行または列にわたってデータ フレームを結合することによって機能します。 2 つ以上のデータ フレームを行 (axis=0) または列 (axis=1) に沿って連結できます。この記事では、2 つ以上の要素を連結または追加する方法を説明します。 パンダのデータフレーム 。
2 つ以上の Pandas DataFrame を連結する Python
DataFrame を垂直または水平に連結するにはさまざまな方法があります。ここでは、DataFrame を垂直または水平に連結するために一般的に使用されるいくつかの方法について説明します。それらは次のとおりです。
- 2 つの Panda データフレームを連結する
-
Using>pd.merge()>2 つのデータフレームを連結するには -
pd.DataFrame.reindex()>インデックス整列による垂直連結の場合 -
Using pd.concat()>とsort=False>より高速な連結のために - pandas.concat() を使用して 2 つの DataFrame を連結する
- を使用して複数の DataFrame を連結する pandas.concat()
- 使用する pandas.join() 2 つのデータフレームを結合するには
- 使用する DataFrame.append() 2 つのデータフレームを連結するには
サンプル データフレームの作成
これから連結する 2 つのデータ フレームを作成します。データフレームの作成に使用します ナンピー そしてパンダ。
Python3
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)> |
出力:
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
2 つの Panda DataFrame を垂直方向と水平方向に連結する
2 つのデータフレームを渡します pd.concat() メソッドをリスト形式で指定し、どの軸で連結するかを指定します。つまり、 軸=0 行に沿って連結するには、 軸=1 列に沿って連結します。
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)> |
出力:
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
pd.merge() を使用して 2 つのデータフレームを連結するデータフレームの連結
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)> |
出力:
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()> インデックス整列による垂直連結の場合
方法 pd.DataFrame.reindex() パンダの DataFrame の垂直連結に使用されます。 DataFrame のインデックスを調整し、適切なスタックを確保します。これは、パンダで連結を使用して DataFrame を垂直に結合するときに重要なステップです。
例: この例のコードでは、2 つのパンダ DataFrame を連結します。 df1> そして df> 、元のインデックスを無視し、結果を変数に格納します。 result> 。次に、連結されたデータフレームのインデックスをリセットします。
Python3
result> => pd.concat([df1, df], ignore_index> => True> )> # Concatenate and reset index> result> => result.reindex(> range> (> 8> ))> print> (result)> |
出力:
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()> と sort=False> より高速な連結のために
メソッド ` pd.concat() Python の pandas ライブラリの ` は、DataFrame を垂直方向 (行に沿って) または水平方向 (列に沿って) に結合するために使用されます。パラメータ `sort=False` は、結果のデータフレームの並べ替えを無効にすることで連結速度を向上させるために使用されます。
例 : この例のコードでは、pandas ライブラリを使用して 2 つの DataFrame df1 と df を行 (axis=0) に沿って連結します。 sort=False パラメーターを指定すると、結果の DataFrame を列名で並べ替えることができなくなります。
Python3
result> => pd.concat([df1, df], sort> => False> )> print> (result)> |
出力:
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
pandas.concat() を使用して Python で 2 つ以上の Pandas DataFrame を連結する
`pandas.concat()` は 2 つの DataFrame を垂直または水平に結合し、互いの上に積み重ねたり横に並べたりして、指定された軸に沿ってデータを連結する柔軟な方法を提供します。
例 :この例では、 pd.concat()> 関数を使用してこれらのデータフレームを垂直方向に連結し、という名前の新しいデータフレームを生成します。 result> 、 そして ignore_index=True> インデックスをリセットするために使用されます。最終結果が出力されます。
Python3
result> => pd.concat([df, df1], ignore_index> => True> )> print> (result)> |
出力:
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
pandas.concat() を使用して Python で複数の DataFrame を連結する
pandas.concat() メソッドは、DataFrame を垂直方向 (行に沿って) または水平方向 (列に沿って) に結合するために使用されます。 DataFrame のリストを入力として受け取り、指定された軸 (垂直は 0、水平は 1) に基づいてそれらを連結します。
例 : この例では、パンダを使用して 3 つのデータフレームを作成します ( df> 、 df1> 、 そして df2> ) コース、料金、期間、割引に関する情報を表します。次に、これらのデータフレームを垂直方向に連結します。 pd.concat()> という名前の新しいデータフレームを作成します。 result> インデックスがリセットされ、結果のデータフレームが出力されます。
Python3
result> => pd.concat([df, df1, df2], ignore_index> => True> )> print> (result)> |
出力:
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.join() を使用して 2 つのデータフレームを結合するパンダの連結
の pandas.join()> メソッドは、指定された列に基づいて DataFrame を垂直または水平に連結し、SQL スタイルの結合を実行するために使用されます。共通の列値に基づいて 2 つの DataFrame の行または列を結合し、内部結合、外部結合、左結合、右結合が可能になります。
例 : この例では、 join> メソッドを使用して、インデックスに基づいてこれらのデータフレームを結合し、その結果、 という名前の新しいデータフレームが生成されます。 result> が印刷されます。
Python3
result> => df.join(df1)> print> (result)> |
出力:
Courses Fee Duration Discount 0 GFG 20000 30day 1000 1 JS 25000 40days 2300 2 Python 22000 35days 2500 3 Numpy 24000 60days 2000
DataFrame.append() を使用して Python で 2 つのデータフレームを結合する
` DataFrame.append() pandas の ` メソッドは 2 つの DataFrame を垂直に連結し、一方の DataFrame の行をもう一方の DataFrame の下に追加するために使用されます。結合されたデータを含む新しい DataFrame を返します。両方の DataFrame に同じ列があることを確認してください。
例 : この例では、 append()> メソッドが作成され、次の名前の新しいデータフレームが生成されます。 result> リセットされたインデックスが印刷されます。
Python3
result> => df.append(df1, ignore_index> => True> )> print> (result)> |
出力:
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