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

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

Patricia Arquette
リリース: 2024-12-13 13:11:09
オリジナル
294 人が閲覧しました

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

日付範囲内の DataFrame 行の選択

Python では、DataFrame は表形式データを保存および操作するための強力なツールです。よく発生するタスクの 1 つは、指定された日付範囲に基づいて行をフィルター処理することです。これを実現するには、次のオプションがあります。

方法 1: ブール マスクを使用する

DataFrame に datetime64[ns] データ型の日付列が含まれる場合、ブールマスクを作成して、目的の範囲内にある行を選択できます。 range:

# Ensure date column is a datetime64 series
df['date'] = pd.to_datetime(df['date']) 

# Create a boolean mask
mask = (df['date'] > start_date) & (df['date'] <= end_date)

# Select the sub-DataFrame
sub_df = df.loc[mask]
ログイン後にコピー

方法 2: DatetimeIndex を設定する

もう 1 つの効率的な方法は、日付列を DataFrame のインデックスとして設定し、DatetimeIndex を作成することです。 🎜>

df = df.set_index(['date'])

# Select rows using index slicing
sub_df = df.loc[start_date:end_date]
ログイン後にコピー
このメソッドは、他の方法と比べてパフォーマンスが速いため、頻繁に日付ベースの選択を行う場合に特に便利です。

例:

次の DataFrame について考えます:

>>> df
            value  date
0          0.2   2021-06-01
1          0.3   2021-06-05
2          0.4   2021-06-10
3          0.5   2021-06-15
ログイン後にコピー
2021 年 6 月の行を選択するには、どちらかの方法を使用できます:

方法 1: ブール値Mask

mask = (df['date'] > '2021-06-01') & (df['date'] <= '2021-06-30')
sub_df = df.loc[mask]
ログイン後にコピー

メソッド 2: DatetimeIndex

df = df.set_index(['date'])
sub_df = df.loc['2021-06-01':'2021-06-30']
ログイン後にコピー
どちらのメソッドも次のサブデータフレームを返します:

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

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