Pandas の時系列データ
DatetimeIndex、resample()、rolling()、shift()、日付範囲の生成とリサンプリングを扱います。
「Pandas の時系列データ」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
pandasの時系列データ
pandasはdatetimeを標準でサポートしています。文字列をタイムスタンプに変換して時刻でインデックスを作成すると、リサンプリング、ローリングウィンドウ、ラグ特徴量を利用できるようになります。
to_datetimeによる解析
pd.to_datetimeは、文字列や数値を適切なTimestampオブジェクトに変換し、一般的な形式の多くを自動的に推測します。
import pandas as pd
d = pd.to_datetime(["2026-01-01", "2026-01-05", "2026-02-10"])
print(d)
print(d.dtype) # datetime64[ns]date_rangeによる日付の生成
pd.date_rangeは、間隔が均等なタイムスタンプの列を作成します。freqコードで間隔を指定します。Dは日、Hは時間、Mは月末などを表します。
rng = pd.date_range("2026-01-01", periods=5, freq="D")
print(rng)
# 2026-01-01 ... 2026-01-05DatetimeIndexの作成
datetime列をインデックスに設定するとDatetimeIndexが作成され、時刻を考慮したスライスやresample/rollingツールを利用できるようになります。
ts = pd.Series([10, 12, 9, 15, 11],
index=pd.date_range("2026-01-01", periods=5, freq="D"))
print(ts)部分文字列によるスライス
DatetimeIndexがあれば、部分的な日付でスライスできます。年や月を表す文字列を指定すると、一致するすべての行が選択されます。
monthly = pd.Series(range(60),
index=pd.date_range("2026-01-01", periods=60, freq="D"))
print(monthly["2026-02"].head()) # all of Februaryresampleによるダウンサンプリング
resampleは時系列データに対するgroupbyです。より粗い頻度にダウンサンプリングしてから集計します。たとえば、日次データを週次の合計に変換できます。
weekly = monthly.resample("W").sum()
print(weekly.head())アップサンプリングと値の補完
より細かい頻度にリサンプリングすると、空白の期間が生じます。.ffill()と組み合わせると、直前の値を前方に引き継げます。
hourly = ts.resample("12H").ffill()
print(hourly.head())ローリングウィンドウ
rolling(window)は、スライドするウィンドウ上で統計量を計算します。これは、ノイズの多い系列を平滑化する移動平均の基礎となります。
roll = monthly.rolling(window=7).mean()
print(roll.head(10)) # first 6 are NaN (not enough history)ローリング計算の種類
ローリングウィンドウでは、mean、sum、std、min、maxなど、あらゆる集約関数を使えます。7日間のローリングstdを使うと、直近の変動性を測定できます。
vol = monthly.rolling(7).std()
print(vol.tail())shiftによるラグの作成
shift(n)は値をn期間分先にずらし、ラグ特徴量を作成するとともに、期間ごとの変化を計算できるようにします。
df = pd.DataFrame({"sales": [100, 110, 105, 130]})
df["prev"] = df["sales"].shift(1)
df["pct_change"] = (df["sales"] - df["prev"]) / df["prev"]
print(df)日付要素の抽出
.dtアクセサーを使うと、year、month、dayofweekなどの要素を取り出せます。これらはモデルの特徴量として役立ちます。
s = pd.Series(pd.date_range("2026-01-01", periods=3, freq="D"))
print(s.dt.dayofweek) # 0=Monday
print(s.dt.month)理解度チェック
時系列に関する知識を確認しましょう。
まとめ
時系列のツールキット:
- 解析には
pd.to_datetime、生成にはpd.date_rangeを使います DatetimeIndexで部分文字列によるスライスが可能になります- アップサンプリングやダウンサンプリングには
resample(freq).agg()を使います - 移動統計量には
rolling(window)を使います - ラグには
shift(n)、日付要素には.dtを使います
よくある質問
「Pandas の時系列データ」レッスンは無料ですか?
はい。「Pandas の時系列データ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「Pandas の時系列データ」で何を学びますか?
DatetimeIndex、resample()、rolling()、shift()、日付範囲の生成とリサンプリングを扱います。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Pandas の時系列データ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- GroupBy と集計
- ピボットテーブルとクロス集計
- 高度なマージと結合
- Pandas の時系列データ