Pandas で空の DataFrame を作成する方法
Updated on
データセットを扱うことは、あらゆるデータ分析ワークフローの中心的な作業です。データが CSV ファイル、SQL データベース、JSON レスポンス、外部 API のいずれから来ている場合でも、Pandas はデータのクレンジング、変換、探索のための強力で直感的なインターフェースを提供してくれます。
このガイドでは、Pandas で空の DataFrame を作成する実用的な方法をいくつか紹介し、それぞれのアプローチをいつ使うべきかを説明し、(列の型を指定した)モダンなベストプラクティスも紹介します。
🚀 DataFrame をすぐにインタラクティブな可視化ツールに変換したいですか?
PyGWalker は、Jupyter Notebook 内でのデータ探索のためにドラッグ&ドロップ UI を追加するオープンソースの Python ライブラリです。
次のように試せます:
pip install pygwalker import pygwalker as pyg gwalker = pyg.walk(df)
すぐにオンラインノートブックで PyGWalker を試せます:
| Run PyGWalker in Kaggle Notebook (opens in a new tab) | Run PyGWalker in Google Colab (opens in a new tab) | Give PyGWalker a ⭐️ (opens in a new tab) |
|---|---|---|
![]() | ![]() | ![]() |
DataFrame とは?
DataFrame は、Pandas における 2 次元の表形式データ構造で、各列が異なるデータ型を持つことができます。スプレッドシートや SQL テーブルのようなものと考えられます。DataFrame は次のような強力な操作をサポートしています。
- フィルタリングおよびスライシング
- 結合・マージ
- 集約
- 形状変換(reshaping)
- 可視化
なぜ空の DataFrame を作成するのか?
空の DataFrame は、次のような場面で役立ちます。
- データを読み込む前にスキーマを定義したいとき
- 行をプログラム的に追加したいとき
- ループや集約のための結果テーブルを初期化するとき
- 段階的な更新のための構造をあらかじめ用意しておきたいとき
例: データを取り込む前に、商品情報のテーブル構造を用意しておく場合。
⭐ 各方法のクイック比較
| Method | 最適なユースケース |
|---|---|
pd.DataFrame() | 完全に空の器(シェル)だけを作りたいとき |
pd.DataFrame(columns=[...]) | 列名だけを定義したいとき |
pd.DataFrame({col: []}) | 空のリストを使って列を定義したいとき |
pd.Series(dtype=...) | 列名 と データ型の両方を定義したいとき(プロフェッショナルなワークフロー向け推奨) |
pd.DataFrame.from_dict() | dict ベースの方法と同じで、主にスタイルの違い |
空の DataFrame を作成する方法(古典的な 3 手法 + モダンなベストプラクティス 1 つ)
Method 1: DataFrame() コンストラクタを使う
最もシンプルな方法です。
import pandas as pd
df = pd.DataFrame()
print(df)出力:
Empty DataFrame
Columns: []
Index: []後から列を追加するには:
df.columns = ['ProductID', 'ProductName', 'Description', 'Price']
dfMethod 2: 空リストの dict() を使う
この方法では、DataFrame を空のまま保ちつつ列名を定義できます。
import pandas as pd
data = dict(ProductID=[], ProductName=[], Description=[], Price=[])
df = pd.DataFrame(data)
dfMethod 3: from_dict() を使う
Method 2 と等価で、ほとんど書き方のスタイルの違いです。
import pandas as pd
data = {
'ProductID': [],
'ProductName': [],
'Description': [],
'Price': []
}
df = pd.DataFrame.from_dict(data)
df⭐ モダンな方法(推奨)
列名とデータ型を指定して空の DataFrame を作成する
Pandas 2.x では、列の型をあらかじめ定義しておくのがベストプラクティスです。
import pandas as pd
df = pd.DataFrame({
"ProductID": pd.Series(dtype="int"),
"ProductName": pd.Series(dtype="string"),
"Description": pd.Series(dtype="string"),
"Price": pd.Series(dtype="float"),
})
dfこのアプローチが特に有効なのは次のような場合です。
✔ API からデータを読み込むとき
✔ 予測可能な型を確保したいとき
✔ ETL パイプラインを構築しているとき
✔ 後から dtype に関する警告を避けたいとき
DataFrame が空かどうかを確認する方法
.empty 属性を使います。
df = pd.DataFrame()
print(df.empty) # True
non_empty = pd.DataFrame({"A": [1]})
print(non_empty.empty) # Falseまとめ
空の DataFrame を作成することは、Pandas における基本的なタスクです。ワークフローに応じて、次のように使い分けられます。
- シンプルな空のシェルを作る
- 列名だけを持つ DataFrame を初期化する
- 明示的なデータ型を定義する(クリーンなパイプラインのために推奨)
- 可読性の高い dict ベースのスキーマで構造を定義する
これで、プロジェクトに最適な方法を選び、よりクリーンで予測可能な Pandas ワークフローを構築できるようになります。


