Python で CSV ファイルをマージする
- 名前によるマージを使用して、複数の CSV ファイルを 1つの Pandas DataFrame に結合する
- すべてのフィールドをマージして、複数の CSV ファイルを 1つの Pandas DataFrame にマージ
- まとめ
Pandas DataFrame
で.csv ファイルの形式の大きなデータセットを操作しているときに、単一のファイルにデータ分析の完全な情報が含まれていない可能性があります。この場合、1つの Pandas DataFrame
に複数のファイルをマージする必要があります。Python pandas ライブラリは、concat
、merge
、join
など、この問題を解決するためのさまざまなメソッドを提供します。
このガイドでは、さまざまな例を使用して、複数の.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
モジュールを使用する方法がわかりました。