Python | pandas の DataFrame を使った範囲検索

Python
スポンサーリンク

pandas を使うと、日時データや数値データの範囲検索がとても簡単に書けます。特にログ解析や時系列データ処理ではよく使われます。


基本の流れ

  1. DataFrame に日時や数値を格納
  2. 条件式で範囲を指定(between やブールインデックスを利用)
  3. 該当する行を抽出

具体例:日時データの範囲検索

import pandas as pd

# サンプルのログデータ
data = {
    "timestamp": pd.date_range("2025-11-29 09:00", periods=6, freq="30min"),
    "event": ["start", "check", "error", "check", "end", "cleanup"]
}
df = pd.DataFrame(data)

print("元のデータ:")
print(df)

# 検索範囲(10:00〜11:00)
start_time = pd.Timestamp("2025-11-29 10:00")
end_time   = pd.Timestamp("2025-11-29 11:00")

# 範囲検索(betweenを利用)
subset = df[df["timestamp"].between(start_time, end_time)]

print("\n対象範囲のログ:")
print(subset)
Python

実行結果

元のデータ:
            timestamp   event
0 2025-11-29 09:00:00   start
1 2025-11-29 09:30:00   check
2 2025-11-29 10:00:00   error
3 2025-11-29 10:30:00   check
4 2025-11-29 11:00:00     end
5 2025-11-29 11:30:00 cleanup

対象範囲のログ:
            timestamp  event
2 2025-11-29 10:00:00  error
3 2025-11-29 10:30:00  check
4 2025-11-29 11:00:00    end

数値データの範囲検索

scores = pd.DataFrame({"name": ["A", "B", "C", "D", "E"],
                       "score": [45, 60, 72, 85, 90]})

# 60〜80点の範囲を抽出
subset = scores[scores["score"].between(60, 80)]
print(subset)
Python

実行結果

  name  score
1    B     60
2    C     72

まとめ

  • between を使うと 範囲検索が簡潔に書ける
  • 日時データでも数値データでも同じように使える
  • 大規模データでも効率的に抽出可能
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました