选择日期范围内的 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中文网其他相关文章!