[Python]CSVファイルの結合(ファイル名、キー、順番の指定方法)

CSVファイルを結合する方法について説明します。Pythonには様々なライブラリ・モジュールがありますが、ここではpandasを使用して結合を行います。

CSVファイル名を指定して結合する方法

複数のCSVファイルを結合する場合、ファイル名を指定して結合する方法があります。以下のようにpandasのread_csv関数を用いてCSVファイルを読み込み、concat関数で結合します。

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df_concat = pd.concat([df1, df2], axis=0)
print(df_concat)

この場合、axis=0は縦方向に結合することを指定しています。axis=1にすると横方向に結合します。

キーを指定してCSVファイルを結合する方法

複数のCSVファイルを結合する場合、キーを指定して結合する方法があります。以下のようにpandasのmerge関数を用いてCSVファイルを結合します。

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df_merge = pd.merge(df1, df2, on="key")
print(df_merge)

この場合、on=”key”はキーとして使用する列を指定しています。キーが複数ある場合は、on=[“key1”, “key2”]のように指定します。

CSVファイルを特定の順番で結合する方法

複数のCSVファイルを特定の順番で結合する場合、以下のようにpandasのconcat関数を用いて結合します。

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df_concat = pd.concat([df1, df2], axis=1)
print(df_concat)

この場合、axis=1は横方向に結合することを指定しています。また、結合する際に列の順番を指定することもできます。以下のように列名を指定して、順番を変更することができます。

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df_concat = pd.concat([df1["col2"], df2["col1"], df1["col1"], df2["col2"]], axis=1)
print(df_concat)

Pythonで使用できるCSVファイル結合のライブラリ・モジュール紹介

PythonでCSVファイルを結合するためのライブラリ・モジュールとしては、pandas以外にもcsv、numpy、pyexcel等があります。

csvモジュールはPythonの標準ライブラリで、CSVファイルを扱うための基本的な機能を提供しています。numpyは高速な数値計算を行うためのライブラリで、pandasの基盤となっています。pyexcelはExcelファイルを扱うためのライブラリですが、CSVファイルも扱うことができます。

結合したCSVファイルの保存方法

結合したCSVファイルを保存する場合、以下のようにto_csv関数を用いて保存することができます。

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df_concat = pd.concat([df1, df2], axis=0)
df_concat.to_csv("concat.csv", index=False)

この場合、index=Falseは行番号を保存しないことを指定しています。

まとめ

Pythonを使用してCSVファイルを結合する方法について説明しました。pandasのconcat関数やmerge関数を用いることで、簡単にCSVファイルを結合することができます。また、様々なライブラリ・モジュールがありますが、pandasがCSVファイルの結合においては最も便利なツールです。