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
Python Pandas - How to perform floor operation on the DateTimeIndex with microseconds frequency
To perform floor operation on the DateTimeIndex with microseconds frequency, use the DateTimeIndex.floor() method. For microseconds frequency, use the freq parameter with value 'us'.
What is Floor Operation?
The floor operation rounds down datetime values to the nearest specified frequency unit. When applied with microseconds frequency, it truncates nanoseconds while preserving microseconds precision ?
Creating DateTimeIndex
First, let's create a DateTimeIndex with high precision timestamps ?
import pandas as pd
# DatetimeIndex with period 5 and frequency as 40 seconds
# timezone is Australia/Adelaide
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')
print("Original DateTimeIndex...")
print(datetimeindex)
print("\nFrequency:", datetimeindex.freq)
Original DateTimeIndex...
DatetimeIndex(['2021-10-18 07:20:32.261811624+10:30',
'2021-10-18 07:21:12.261811624+10:30',
'2021-10-18 07:21:52.261811624+10:30',
'2021-10-18 07:22:32.261811624+10:30',
'2021-10-18 07:23:12.261811624+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='40S')
Frequency: <40 * Seconds>
Performing Floor Operation
Now apply the floor operation with microseconds frequency using 'us' ?
import pandas as pd
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')
# Floor operation with microseconds frequency
floored_index = datetimeindex.floor(freq='us')
print("After floor operation with microseconds frequency...")
print(floored_index)
print("\nOriginal precision: nanoseconds")
print("After floor: microseconds (nanoseconds truncated)")
After floor operation with microseconds frequency...
DatetimeIndex(['2021-10-18 07:20:32.261811+10:30',
'2021-10-18 07:21:12.261811+10:30',
'2021-10-18 07:21:52.261811+10:30',
'2021-10-18 07:22:32.261811+10:30',
'2021-10-18 07:23:12.261811+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq=None)
Original precision: nanoseconds
After floor: microseconds (nanoseconds truncated)
Comparing Before and After
Let's compare the precision difference between original and floored timestamps ?
import pandas as pd
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=3,
tz='Australia/Adelaide', freq='40S')
floored_index = datetimeindex.floor(freq='us')
print("Precision Comparison:")
for i in range(len(datetimeindex)):
original = str(datetimeindex[i])
floored = str(floored_index[i])
print(f"Original: {original}")
print(f"Floored: {floored}")
print("---")
Precision Comparison: Original: 2021-10-18 07:20:32.261811624+10:30 Floored: 2021-10-18 07:20:32.261811+10:30 --- Original: 2021-10-18 07:21:12.261811624+10:30 Floored: 2021-10-18 07:21:12.261811+10:30 --- Original: 2021-10-18 07:22:32.261811624+10:30 Floored: 2021-10-18 07:22:32.261811+10:30 ---
Common Use Cases
Floor operation with microseconds frequency is useful for:
- Data alignment: Standardizing timestamps to microsecond precision
- Performance optimization: Reducing precision when nanoseconds aren't needed
- Database compatibility: Matching database timestamp precision requirements
Conclusion
Use DateTimeIndex.floor(freq='us') to truncate nanoseconds from timestamps while preserving microsecond precision. This operation is useful for data alignment and standardizing timestamp precision in time series analysis.
