Skip to content

ENH/BUG: pd.date_range() still defaults to nanosecond resolution #59031

Open
@jorisvandenbossche

Description

@jorisvandenbossche

After #55901, to_datetime with strings will now infer the resolution from the data, but the related pd.date_range to create datetime data still returns nanoseconds:

In [5]: pd.date_range("2012-01-01", periods=3, freq="1min")
Out[5]: 
DatetimeIndex(['2012-01-01 00:00:00', '2012-01-01 00:01:00',
               '2012-01-01 00:02:00'],
              dtype='datetime64[ns]', freq='min')

In [6]: pd.to_datetime(['2012-01-01 00:00:00', '2012-01-01 00:01:00', '2012-01-01 00:02:00'])
Out[6]: 
DatetimeIndex(['2012-01-01 00:00:00', '2012-01-01 00:01:00',
               '2012-01-01 00:02:00'],
              dtype='datetime64[s]', freq=None)

Should we update pd.date_range as well to infer the resulting resolution from the start/stop timestamp and freq ?

(I encountered this inconsistency in the pyarrow tests, where we essentially were using both idioms to create a result and expected data, but so that started failing because of a different dtype. I also opened #58989 for that, but regardless of a possible default resolution, pd.date_range would still need to follow that as well)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Non-Nanodatetime64/timedelta64 with non-nanosecond resolution

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions