部分と全体

知識の巣窟

Pandas | concat() と merge() の使い分け

pandasのconcatとmergeの使い分け方を教えて

Pandasには、データフレームを結合するための関数として、pandas.concat() 関数と pandas.merge() 関数があります。それぞれの使い分け方を紹介します。

pandas.concat() 関数は、複数のデータフレームを縦方向(行方向)に連結するために使用されます。連結するデータフレームは、リストやタプルの形で渡すことができます。

以下に、pandas.concat() 関数を使用して、複数のデータフレームを連結する例を示します。

import pandas as pd

# データフレームを作成する
df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
df2 = pd.DataFrame({'col1': [7, 8, 9], 'col2': [10, 11, 12]})
df3 = pd.DataFrame({'col1': [13, 14, 15], 'col2': [16, 17, 18]})

# データフレームを連結する
df = pd.concat([df1, df2, df3])

print(df)

実行すると、次のようになります。

   col1  col2
0     7    10
1     8    11
2     9    12
0    13    16
1    14    17
2    15    18

上記の例では、3つのデータフレームを連結しています。連結されたデータフレームは、元のデータフレームを縦方向(行方向)に結合したものになります。

pandas.merge() 関数は、複数のデータフレームを結合するために使用されます。この関数では、結合するデータフレームを指定するとともに、結合するカラムを指定することで、データフレームを結合することができます。

以下に、pandas.merge() 関数を使用して、複数のデータフレームを結合する例を示します。

import pandas as pd

# データフレームを作成する
df1 = pd.DataFrame({'id': [1, 2, 3], 'col1': [4, 5, 6]})
df2 = pd.DataFrame({'id': [1, 2, 3], 'col2': [7, 8, 9]})

# データフレームを結合する
df = pd.merge(df1, df2, on='id')

print(df)

実行すると、次のようになります。

   id  col1  col2
0   1     4     7
1   2     5     8
2   3     6     9

上記の例では、2つのデータフレームを結合しています。結合されたデータフレームは、id カラムを元に結合されます。

以上が、Pandasのpandas.concat() 関数と pandas.merge() 関数の使い分け方になります。