Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Python - Filter Pandas DataFrame by Time
Filtering a Pandas DataFrame by time allows you to extract records that meet specific date or time conditions. Use the loc indexer with datetime comparisons to filter rows based on date ranges.
Basic Time Filtering with loc
First, create a DataFrame with date information ?
import pandas as pd
# Create dictionary with car purchase data
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
'Date_of_Purchase': ['2021-07-10', '2021-08-12', '2021-06-17', '2021-03-16', '2021-05-19', '2021-08-22']
}
# Create DataFrame
dataFrame = pd.DataFrame(data)
print("Original DataFrame:")
print(dataFrame)
Original DataFrame:
Car Date_of_Purchase
0 BMW 2021-07-10
1 Lexus 2021-08-12
2 Audi 2021-06-17
3 Mercedes 2021-03-16
4 Jaguar 2021-05-19
5 Bentley 2021-08-22
Filtering Records After a Specific Date
Use loc with a date condition to filter rows ?
import pandas as pd
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
'Date_of_Purchase': ['2021-07-10', '2021-08-12', '2021-06-17', '2021-03-16', '2021-05-19', '2021-08-22']
}
dataFrame = pd.DataFrame(data)
# Filter cars purchased after July 15, 2021
filtered_df = dataFrame.loc[dataFrame["Date_of_Purchase"] > "2021-07-15"]
print("Cars purchased after 15th July 2021:")
print(filtered_df)
Cars purchased after 15th July 2021:
Car Date_of_Purchase
1 Lexus 2021-08-12
5 Bentley 2021-08-22
Using datetime for Better Performance
Convert date strings to datetime objects for more efficient filtering ?
import pandas as pd
from datetime import datetime
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
'Date_of_Purchase': ['2021-07-10', '2021-08-12', '2021-06-17', '2021-03-16', '2021-05-19', '2021-08-22']
}
dataFrame = pd.DataFrame(data)
# Convert to datetime
dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'])
# Filter using datetime object
cutoff_date = datetime(2021, 6, 1)
recent_purchases = dataFrame.loc[dataFrame['Date_of_Purchase'] > cutoff_date]
print("Cars purchased after June 1, 2021:")
print(recent_purchases)
Cars purchased after June 1, 2021:
Car Date_of_Purchase
0 BMW 2021-07-10
1 Lexus 2021-08-12
2 Audi 2021-06-17
4 Jaguar 2021-05-19
5 Bentley 2021-08-22
Filtering by Date Range
Use boolean conditions to filter data within a specific date range ?
import pandas as pd
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
'Date_of_Purchase': ['2021-07-10', '2021-08-12', '2021-06-17', '2021-03-16', '2021-05-19', '2021-08-22']
}
dataFrame = pd.DataFrame(data)
dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'])
# Filter for cars purchased between May and July 2021
summer_purchases = dataFrame.loc[
(dataFrame['Date_of_Purchase'] >= '2021-05-01') &
(dataFrame['Date_of_Purchase'] <= '2021-07-31')
]
print("Cars purchased between May and July 2021:")
print(summer_purchases)
Cars purchased between May and July 2021:
Car Date_of_Purchase
0 BMW 2021-07-10
2 Audi 2021-06-17
4 Jaguar 2021-05-19
Conclusion
Use loc with date string comparisons for simple filtering. Convert to datetime objects for better performance and more complex date operations. Combine conditions with & and | operators for date range filtering.
Advertisements
