首頁 > 後端開發 > Python教學 > 如何在Python中有效率地選擇特定日期範圍內的DataFrame行?

如何在Python中有效率地選擇特定日期範圍內的DataFrame行?

Patricia Arquette
發布: 2024-12-13 13:11:09
原創
296 人瀏覽過

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

選擇日期範圍內的 DataFrame 行

在 Python 中,DataFrame 是用於儲存和操作表格資料的強大工具。一項常見的任務是根據指定的日期範圍過濾行。為此,我們有以下選項:

方法 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]
登入後複製

方法二:設定DatetimeIndex

另一個有效的方法是將日期列設定為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']
登入後複製

兩種方法都會返回以下子DataFrame:

>>> sub_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
登入後複製

以上是如何在Python中有效率地選擇特定日期範圍內的DataFrame行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板