ホームページ > バックエンド開発 > Python チュートリアル > Pandas で特定の日付範囲内の DataFrame 行を効率的に選択する方法は?

Pandas で特定の日付範囲内の DataFrame 行を効率的に選択する方法は?

Patricia Arquette
リリース: 2024-12-14 08:36:16
オリジナル
327 人が閲覧しました

How to Efficiently Select DataFrame Rows Within a Specific Date Range in Pandas?

2 つの日付間の DataFrame 行を選択する

概要

時系列データを扱う場合、多くの場合、日付範囲に基づいて特定の行を選択する必要があります。この記事では、pandas DataFrame でこれを実現する 2 つの方法について説明します。

方法 1: ブール マスク

  1. 日付列が dtype を持つシリーズであることを確認します。 datetime64[ns]:

    df['date'] = pd.to_datetime(df['date'])
    ログイン後にコピー
  2. 開始日と終了日の比較演算子を使用してブール マスクを作成します:

    mask = (df['date'] > start_date) & (df['date'] <= end_date)
    ログイン後にコピー
  3. Selectを使用したサブデータフレームマスク:

    df.loc[mask]
    ログイン後にコピー
  4. 必要に応じて、サブ DataFrame を df に再割り当てします。

方法 2: DatetimeIndex

  1. 日付列をIndex:

    df = df.set_index(['date'])
    ログイン後にコピー
  2. 日付範囲を使用して DataFrame をスライスします:

    df.loc[start_date:end_date]
    ログイン後にコピー

日付列を含む DataFrame を考えてみましょう。次のコードは、ブール マスク メソッドを使用して '2000-06-01' から '2000-06-10' までの行を選択します。

import pandas as pd

df = pd.DataFrame({
    'date': pd.date_range('2000-1-1', periods=200, freq='D'),
    'value': np.random.rand(200)
})

mask = (df['date'] > '2000-06-01') & (df['date'] <= '2000-06-10')
result_df = df[mask]
ログイン後にコピー

結果には 6 月 1 日から 10 日までの行が含まれます。 2000.

比較

  • ブール マスク メソッドはより柔軟で、より複雑な日付比較が可能です。
  • DatetimeIndex メソッドは高速です。繰り返しの日付範囲選択の場合。
  • を使用します。 pd.read_csv の parse_dates を使用すると、日付列を datetime64s.
に変換する手間を省くことができます。

以上がPandas で特定の日付範囲内の DataFrame 行を効率的に選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート