首頁 >後端開發 >Python教學 >如何以日期範圍過濾 Pandas DataFrame 行?

如何以日期範圍過濾 Pandas DataFrame 行?

Susan Sarandon
Susan Sarandon原創
2024-12-29 10:03:09396瀏覽

How to Filter Pandas DataFrame Rows by Date Range?

擷取指定日期範圍內的DataFrame 行

問題:

從包含以下內容的CSV 檔案中建立Pandas DataFrame日期欄。任務是僅提取日期值落在指定日期範圍內或兩個指定日期之間的行。

解決方案:

有兩種方法可以實現此目的:

選項1:布林值掩碼

  1. 確保日期列採用datetime64[ns] 格式。
  2. 使用日期範圍條件建立布林遮罩。
  3. 選擇所需的行使用df.loc[mask].

示例:

import pandas as pd

df = pd.read_csv('data.csv', parse_dates=['date'])

start_date = '2022-01-01'
end_date = '2022-02-28'

mask = (df['date'] >= start_date) & (df['date'] <= end_date)
df_filtered = df.loc[mask]

選項2:DatetimeIndex

  1. 設定日期欄位作為DataFrame 的索引。
  2. 使用df.loc[start_date : end_date] 檢索所需的行。

範例:

df = pd.read_csv('data.csv', parse_dates=['date'])
df = df.set_index(['date'])

df_filtered = df.loc[start_date : end_date]

注意: 如果在讀取 CSV 時使用了 parse_dates ,不需要將日期欄位轉換為 datetime64。

以上是如何以日期範圍過濾 Pandas DataFrame 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn