Skip to content

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)
KaggleColabGitHub

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']
df

Method 2: 空リストの dict() を使う

この方法では、DataFrame を空のまま保ちつつ列名を定義できます。

import pandas as pd
 
data = dict(ProductID=[], ProductName=[], Description=[], Price=[])
df = pd.DataFrame(data)
df

Method 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 ワークフローを構築できるようになります。