-globを使ってファイルパスを生成します。
-プログレバーを表示したかったので、tqdmを利用しています。
-日本語が含まれるファイルパスで、それによるエラーを回避するため、engine='python'を追加しています。
-ちょうどindexにしたいものが、Unnamed: 0にあったので、set_index('Unnamed: 0')しています。
-あとあと、重複データがあると困るので、重複確認をしています。any().any()は速度上若干不利らしいですが、わかりやすいので、使っています。
import glob
import sys
import pandas as pd
from tqdm import tqdm
def csvs_to_one_df(path):
df = pd.DataFrame()
for file_path in tqdm(glob.glob(path), desc='csv loading'):
data = pd.read_csv(file_path, dtype=object, engine='python')
data.columns = data.columns.str.strip()
data = data.set_index('Unnamed: 0')
data = data[data.index.notnull()]
df = pd.concat([df, data])
df = df.sort_index()
if df.duplicated().any().any():
sys.exit('error:重複データあり')
return df