pandas を使うと、日時データや数値データの範囲検索がとても簡単に書けます。特にログ解析や時系列データ処理ではよく使われます。
基本の流れ
- DataFrame に日時や数値を格納
- 条件式で範囲を指定(
betweenやブールインデックスを利用) - 該当する行を抽出
具体例:日時データの範囲検索
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を使うと 範囲検索が簡潔に書ける- 日時データでも数値データでも同じように使える
- 大規模データでも効率的に抽出可能


