PythonのPandasのDataframeの行数を取得する方法について

Python,イメージ

AI実装検定のご案内

PythonのPandasライブラリにおいて、DataFrameの行数を取得する方法はいくつかありますが、目的や使い方に応じて最適な方法を選ぶのがポイントです。

ここでは、代表的な方法を具体例とともに詳しく解説し、それぞれのメリットや使い分けについても触れます。

目次

方法①:len(df) を使う【最もシンプル】

import pandas as pd

df = pd.DataFrame({
    '名前': ['田中', '佐藤', '鈴木'],
    '年齢': [25, 30, 22]
})

行数 = len(df)
print(行数)  # 出力: 3

解説

  • Python組み込み関数 len() は、DataFrameに対して使うと「行数」を返します。
  • 最もシンプルで高速な方法。
  • インデックスが連番でなくても正しくカウントされます。

方法②:df.shape[0] を使う【行数と列数の取得が目的なら】

import pandas as pd

df = pd.DataFrame({
    '名前': ['田中', '佐藤', '鈴木'],
    '年齢': [25, 30, 22]
})

行数 = df.shape[0]
列数 = df.shape[1]
print(f"行数: {行数}, 列数: {列数}")  # 出力: 行数: 3, 列数: 2

解説

  • df.shape(行数, 列数) のタプルを返します。
  • df.shape[0] で行数、df.shape[1] で列数を取得可能。
  • 行数と列数を同時に知りたいときに便利です。

方法③:df.count() を使う【欠損値を考慮した行数カウント】

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, None],
    'B': [None, 2, 3]
})

# 各列の非NaN数
print(df.count())  
# 出力:
# A    2
# B    2

# 非NaNのセル数が最大の列の値(行数の目安)
print(df.count().max())  # 出力: 2

解説

  • df.count() は「非NaNのセルの数」を列ごとに返します。
  • 「完全な行の数」を数えたい場合、条件を指定してフィルタする必要があります。

方法④:len(df.index) を使う【明示的にインデックスを参照】

import pandas as pd

df = pd.DataFrame({
    '名前': ['田中', '佐藤', '鈴木'],
    '年齢': [25, 30, 22]
})

行数 = len(df.index)
print(行数)  # 出力: 3

解説

  • df.index は行ラベル(インデックス)を表すオブジェクト。
  • len(df) と結果は同じですが、より明示的な書き方。
  • 明示的に行を対象としていることをコードで示したい場合に有効です。

補足:空のDataFrameの行数を取得した場合

import pandas as pd

df_empty = pd.DataFrame()

print(len(df_empty))         # → 0
print(df_empty.shape[0])     # → 0
print(len(df_empty.index))   # → 0
  • いずれも「0」を返すため、DataFrameが空かどうかの判定にも利用できます。

条件付きで行数を数える方法

特定条件を満たす行だけ数えたい場合は、以下のようにフィルタと組み合わせます。

import pandas as pd

df = pd.DataFrame({
    '名前': ['田中', '佐藤', '鈴木'],
    '年齢': [25, 30, 22]
})

# 30歳以上の行だけを抽出
条件付き行数 = len(df[df['年齢'] >= 30])
print(条件付き行数)  # 出力: 1

パフォーマンスについて

  • len(df)df.shape[0] はどちらもO(1)の定数時間で取得できるため、大規模なデータでも問題なく使えます。
  • df.count() は全体のスキャンが必要なので、ややコストがかかります。

まとめ表

方法説明おすすめ用途
len(df)行数をシンプルに取得最も一般的
df.shape[0]行数(+列数も取得可能)行数・列数の把握
len(df.index)インデックスの長さ明示的に書きたい時
df.count()非NaNセル数(列ごと)欠損値の確認
len(df[条件])条件を満たす行数条件付き抽出

おわりに

len(df)df.shape[0] は覚えておくと、実務でもデバッグでも非常に便利です。

特にPandasのデータ処理パイプラインでは、途中の行数確認が分析の信頼性を左右することもあります。

以上、PythonのPandasのDataframeの行数を取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次