Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つのPandas DataFrameをマージ(結合)する方法

2つのPandas DataFrameをマージ(結合)するには、merge()関数を使用します。使い方は非常にシンプルで、結合したい2つのDataFrameを引数としてmerge()関数に渡すだけでOKです。

デフォルトでは、共通する列名がキーとして自動的に認識され、内部結合(inner join)が実行されます。

ライブラリのインポート

まず、必要なライブラリを「pd」という別名でインポートします。

import pandas as pd

DataFrameの作成

1つ目のDataFrameを作成します。ここでは車種と販売台数のデータを用意しました。

# DataFrame1を作成
dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

次に、2つ目のDataFrameを作成します。こちらは車種と登録価格のデータです。

# DataFrame2を作成
dataFrame2 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Mercedes', 'Jaguar'],
        "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
    }
)

DataFrameのマージ

merge()関数を使って、2つのDataFrameをマージします。

mergedRes = pd.merge(dataFrame1, dataFrame2)

この例では、両方のDataFrameに存在する共通列「Car」がキーとなり、両方に含まれる車種(BMW、Lexus、Audi、Mustang、Jaguar)のみが結果に残ります。「Bentley」はDataFrame2に、「Mercedes」はDataFrame1に存在しないため、マージ後の結果からは除外されます。

サンプルコード全体

以下に完全なサンプルコードを示します。

import pandas as pd

# DataFrame1を作成
dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

print("DataFrame1 ...\n", dataFrame1)

# DataFrame2を作成
dataFrame2 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Mercedes', 'Jaguar'],
        "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
    }
)

print("\nDataFrame2 ...\n", dataFrame2)

# DataFrameをマージ
mergedRes = pd.merge(dataFrame1, dataFrame2)
print("\nMerged data frame...\n", mergedRes)

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame1 ...
        Car   Units
0      BMW     100
1    Lexus     150
2     Audi     110
3  Mustang      80
4  Bentley     110
5   Jaguar      90

DataFrame2 ...
         Car  Reg_Price
0      BMW       7000
1    Lexus       1500
2     Audi       5000
3  Mustang       8000
4 Mercedes       9000
5   Jaguar       6000

Merged data frame...
      Car  Units  Reg_Price
0     BMW    100       7000
1   Lexus    150       1500
2    Audi    110       5000
3 Mustang     80       8000
4  Jaguar     90       6000

まとめ

pandasのmerge()関数を使えば、共通のキー列を持つ複数のDataFrameを簡単に結合できます。デフォルトでは内部結合が行われますが、howパラメータに「left」「right」「outer」などを指定することで、さまざまな結合方法に対応可能です。データ分析の前処理において頻繁に使われる重要な操作なので、ぜひマスターしておきましょう。

  1. 【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

    複数のCSVファイルを1つのデータフレームにまとめて結合(マージ)したい場合、Pythonのglobモジュールが便利です。os.path.join()メソッドで対象ファイルのパスを指定し、concat()関数を使うことで、すべてのCSVファイルを簡単に連結できます。必要なライブラリのインポートまず、必要なライブラリをインポートします。ここではpandasライブラリを「pd」という別名で読み込んでいます。import pandas as pd import glob import osサンプルとなるCSVファイル今回は、以下の3つのCSVファイルを結合してみましょう。Sales1.csvSale

  2. Python Pandas – DataFrameに行を追加する方法

    PythonのPandasでDataFrameに行を追加するには、append()メソッドを使用します。この記事では、2つのDataFrameを作成し、一方をもう一方の後ろに連結する方法を、実際のコード例とともにわかりやすく解説します。基本的な流れ1. pandasライブラリのインポートまず、pandasライブラリをエイリアス付きでインポートします。import pandas as pd2. 1つ目のDataFrameを作成dataFrame1 = pd.DataFrame( { Car: [BMW, Lexus, Audi, Jaguar] } )3. 2つ目