pandasで指定ディレクトリのファイルをマージ

複数に分かれているcsvやfeatherのファイルをマージする。
for文でやるより高速。

import pathlib
import pandas as pd

def merge_files(file_path:str, extension:str = 'csv') -> pd.DataFrame:
    """複数のファイルを読み込みマージする
    Args:
        file_path (str): マージ対象のディレクトリのパス
        extension (str, optional): 読込対象の拡張子。デフォルトは'csv'
    Returns:
        pd.DataFrame: マージ後のDataFrame
    """
    files = [pd.read_csv(str(path)) for path in pathlib.Path(file_path).glob(f'*.{extension}')]
    return pd.concat(files, sort=False)

df = merge_files('data')

参考

https://shunyaueta.com/posts/2020-09-09/

いいなと思ったら応援しよう!