Python で CSV ファイルをマージする

Samreena Aslam 2023年1月30日
  1. 名前によるマージを使用して、複数の CSV ファイルを 1つの Pandas DataFrame に結合する
  2. すべてのフィールドをマージして、複数の CSV ファイルを 1つの Pandas DataFrame にマージ
  3. まとめ
Python で CSV ファイルをマージする

Pandas DataFrame で.csv ファイルの形式の大きなデータセットを操作しているときに、単一のファイルにデータ分析の完全な情報が含まれていない可能性があります。この場合、1つの Pandas DataFrame に複数のファイルをマージする必要があります。Python pandas ライブラリは、concatmergejoin など、この問題を解決するためのさまざまなメソッドを提供します。

このガイドでは、さまざまな例を使用して、複数の.csv ファイルを単一の Pandas DataFrame にマージするための 2つの異なる方法を学習します。

名前によるマージを使用して、複数の CSV ファイルを 1つの Pandas DataFrame に結合する

複数の.csv ファイルをマージするには、まず、pandas ライブラリをインポートしてファイルパスを設定します。次に、pd.read_csv() メソッドを使用して、すべての CSV ファイルを読み取ります。pd.concat() は、マップされた CSV ファイルを引数として受け取り、デフォルトで行軸に沿ってそれらをマージします。ignore_index=True 引数は、新しくマージされた DataFrame の連続インデックス値を設定するために使用されます。

pandas python を使用して、上記のアプローチを実装した次の例を参照してください。

サンプルコード:

import pandas as pd

# set files path
sales1 = "C:\\Users\\DELL\\OneDrive\\Desktop\\salesdata1.csv"
sales2 = "C:\\Users\DELL\\OneDrive\\Desktop\\salesdata2.csv"

print("*** Merging multiple csv files into a single pandas dataframe ***")

# merge files
dataFrame = pd.concat(map(pd.read_csv, [sales1, sales2]), ignore_index=True)
print(dataFrame)

出力:

*** Merging multiple csv files into a single pandas dataframe ***
    Product_Name  Quantity Sale_Price
0    Acer laptop         3       500$
1    Dell Laptop         6       700$
2      Hp laptop         8       800$
3  Lenavo laptop         2       600$
4    Acer laptop         3       500$
5    Dell Laptop         6       700$
6      Hp laptop         8       800$
7  Lenavo laptop         2       600$

すべてのフィールドをマージして、複数の CSV ファイルを 1つの Pandas DataFrame にマージ

Pandas DataFrame 内のすべての.csv ファイルをマージするために、このアプローチでは glob モジュールを使用しました。まず、すべてのライブラリをインポートする必要がありました。その後、マージする必要のあるすべてのファイルのパスを設定します。

次の例では、os.path.join() が最初の引数としてファイルパスを取り、2 番目の引数として結合されるパスコンポーネントまたは.csv ファイルを取ります。ここで、salesdata*.csv は、指定されたホームディレクトリの*salesdata *で始まり、拡張子が.csv で終わるすべてのファイルと一致して返されます。glob.glob(files_joined) は、マージされたファイル名の引数を取り、すべてのマージファイルのリストを返します。

glob モジュールを使用してすべての .csv ファイルをマージするには、次の例を参照してください。

サンプルコード:

import pandas as pd
import glob
import os

# merging the files
files_joined = os.path.join(
    "C:\\Users\\DELL\\OneDrive\\Desktop\\CSV_files", "salesdata*.csv"
)

# Return a list of all joined files
list_files = glob.glob(files_joined)

print("** Merging multiple csv files into a single pandas dataframe **")
# Merge files by joining all files
dataframe = pd.concat(map(pd.read_csv, list_files), ignore_index=True)
print(dataframe)

出力:

** Merging multiple csv files into a single pandas dataframe **
    Product_Name  Quantity Sale_Price
0    Acer laptop         3       500$
1    Dell Laptop         6       700$
2      Hp laptop         8       800$
3  Lenavo laptop         2       600$
4    Acer laptop         3       500$
5    Dell Laptop         6       700$
6      Hp laptop         8       800$
7  Lenavo laptop         2       600$

まとめ

このチュートリアルでは、Python Pandas で複数の CSV ファイルをマージする 2つのアプローチを紹介しました。.csv ファイルを読み取り、pd.concat() メソッドを使用してそれらを単一ぐ Pandas DataFrame にマージする方法を見てきました。さらに、Pandaspython コードで glob モジュールを使用する方法がわかりました。

関連記事 - Python CSV