Home >Backend Development >Python Tutorial >How to Filter a Pandas DataFrame Based on a Date Range?
Filtering a Pandas DataFrame based on dates is a common task in data analysis. In this article, we'll explore two approaches for filtering a DataFrame to retain only rows with dates within a specified range, specifically the next two months from the current date.
Filtering by Label or Position Indexing
If the "date" column is configured as the index of the DataFrame, you can use the .loc attribute for label-based indexing or .iloc for positional indexing. For instance, if your intended date range spans from January 1st, 2014, to February 1st, 2014, you can use the following code:
df.loc['2014-01-01':'2014-02-01']
Filtering by Logical Conditions
In cases where the "date" column is not the index, you have two options. Firstly, you can temporarily or permanently set it as the index. Secondly, you can apply logical conditions using boolean operators. This can be achieved using the following code:
df[(df['date'] > '2013-01-01') & (df['date'] < '2013-02-01')]
In this example, the 'date' column is being compared to two dates: '2013-01-01' and '2013-02-01'. The resulting DataFrame will include only the rows where the date falls within the specified range.
Note: It's important to use appropriate date formats and ensure that the values in the "date" column are in a valid date format. Additionally, .ix is deprecated and should no longer be used.
The above is the detailed content of How to Filter a Pandas DataFrame Based on a Date Range?. For more information, please follow other related articles on the PHP Chinese website!