このチュートリアルでは、PythonのPandas DataFrameに複数のCSVファイルを効率的にインポートする方法を説明します。Pandasの基本、単一CSVファイルの読み取り、複数ファイルのインポート、そして最後にそれらを単一の統合されたDataFrameに連結する方法を説明します。
目次
1. Pandasとは何か?
Pandasは、Pythonのデータサイエンスエコシステムにおける基盤となるライブラリです。高性能で使いやすいデータ構造とデータ分析ツールを提供します。中核となるデータ構造はDataFrameであり、スプレッドシートやSQLテーブルと同様の2次元ラベル付きデータ構造です。Pandasは、CSVファイル、Excelスプレッドシート、データベースなど、さまざまなソースからの構造化データの処理を簡素化します。
2. 単一CSVファイルの読み取り
複数のファイルに取り組む前に、単一のCSVを読み込んでみましょう。
import pandas as pd
file_path = 'your_file.csv' # ファイルパスを置き換えてください
df = pd.read_csv(file_path)
print(df.head())
これはPandasをインポートし、ファイルパスを指定し、pd.read_csv()
を使用してCSVを読み込み、df.head()
を使用して最初の5行を表示します。
3. 複数CSVファイルの読み取り
ディレクトリから複数のCSVファイルを読み取るには、glob
モジュールを使用します。
import pandas as pd
import glob
directory = 'path/to/your/csv/files/' # ディレクトリを置き換えてください
csv_files = glob.glob(directory + '*.csv')
dfs = []
for file in csv_files:
try:
df = pd.read_csv(file)
dfs.append(df)
except pd.errors.EmptyDataError:
print(f"警告:空のファイルはスキップしました: {file}")
except pd.errors.ParserError:
print(f"警告:構文解析エラーのあるファイルはスキップしました: {file}")
print(f"読み込まれたDataFrameの数: {len(dfs)}")
このコードは、指定されたディレクトリ内のすべてのCSVファイルを見つけ、それぞれをDataFrameに読み込み、リストに追加します。try-except
ブロックは、空のファイルや構文解析エラーなどの潜在的なエラーを処理し、スクリプトがクラッシュするのを防ぎます。
4. DataFrameの連結
最後に、個々のDataFrameを結合します。
combined_df = pd.concat(dfs, ignore_index=True)
print(combined_df.head())
combined_df.to_csv('combined_data.csv', index=False) #オプション:新しいCSVに保存
pd.concat(dfs, ignore_index=True)
は、dfs
リスト内のすべてのDataFrameを連結します。ignore_index=True
は、クリーンで連続したインデックスのためにインデックスをリセットします。オプションのto_csv()
は結果を保存します。
5. 潜在的なエラーの処理
堅牢なスクリプトは問題を予測します。複数ファイルの読み取りセクションに示されているように、エラー処理を追加することが重要です。ディレクトリの存在を確認し、さまざまな種類のファイル読み取りエラー(例:不適切な区切り文字、列の欠落)を処理することを検討してください。これにより、スクリプトの信頼性が向上し、予期しないエラーが発生しにくくなります。