選擇日期範圍內的 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中文網其他相關文章!