首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板