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.

Updated on: 2026-03-26T17:29:32+05:30

172 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements