INDEX
大規模データセットの取り扱い(HDF5、Parquet)
機械学習やデータ分析では、数GBから数TB規模のデータを扱うことがあります。CSVやExcelは扱いやすい反面、大規模データでは読み込み速度やメモリ使用量が問題になることがあります。
そこで利用されるのが、HDF5やParquetといった大規模データ向けの保存形式です。これらを利用することで、高速な読み込みや効率的なデータ管理が可能になります。
大規模データセットの取り扱いを図で理解する

大規模データ向けフォーマットが必要な理由
CSVはシンプルで扱いやすい形式ですが、データ量が増えると読み込み速度やメモリ使用量が大きな課題になります。
| 形式 | 特徴 |
|---|---|
| CSV | 扱いやすいが大規模データでは処理が遅くなりやすい |
| Excel | 閲覧しやすいが大量データには不向き |
| HDF5 | 階層構造で高速に保存・読み込みできる |
| Parquet | 列単位で保存し高圧縮・高速処理が可能 |
HDF5とは
HDF5(Hierarchical Data Format)は、大規模データを階層構造で保存できるフォーマットです。
- 大量データを効率的に保存できる
- 必要な部分だけを読み込める
- 階層構造でデータを整理できる
- 科学技術計算や研究分野で広く利用される
HDF5のインストール
pip install pandas tables
HDF5データの保存
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['A', 'B', 'C']
})
df.to_hdf('data.h5', key='df', mode='w')
HDF5データの読み込み
df_loaded = pd.read_hdf('data.h5', 'df')
print(df_loaded)
Parquetとは
Parquetは列指向(カラムナ型)のデータフォーマットです。必要な列だけを効率よく読み込めるため、ビッグデータ処理や機械学習で広く利用されています。
- 高い圧縮率を持つ
- 読み込み速度が速い
- 必要な列のみ取得できる
- SparkやDuckDBなどとも相性が良い
Parquetのインストール
pip install pyarrow
Parquetデータの保存
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['A', 'B', 'C']
})
df.to_parquet('data.parquet')
Parquetデータの読み込み
df_loaded = pd.read_parquet('data.parquet')
print(df_loaded)
HDF5とParquetの違い
| 項目 | HDF5 | Parquet |
|---|---|---|
| 保存方式 | 階層構造 | 列指向(カラムナ型) |
| 読み込み速度 | 高速 | 非常に高速 |
| 圧縮効率 | 高い | 非常に高い |
| 部分読み込み | 可能 | 列単位で特に得意 |
| 主な用途 | 科学計算・研究データ | 機械学習・ビッグデータ分析 |
機械学習で利用される理由
機械学習では大量の学習データを扱うため、データの保存形式が処理速度に大きく影響します。
- 読み込み時間を短縮できる
- メモリ使用量を削減できる
- 大規模データでも扱いやすい
- 学習パイプライン全体を高速化できる