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」などを指定することで、さまざまな結合方法に対応可能です。データ分析の前処理において頻繁に使われる重要な操作なので、ぜひマスターしておきましょう。
-
【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
-
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つ目