-
-
Notifications
You must be signed in to change notification settings - Fork 19.1k
Closed
Labels
DatetimeDatetime data dtypeDatetime data dtypeEnhancementNeeds DiscussionRequires discussion from core team before further actionRequires discussion from core team before further action
Description
I implement a simple function for reference:
def infer_as_datetime(dtarr):
for unit in ['ns', 'us', 'ms', 's']: # for 'YYYY-MM-dd hh:mm:ss.msec' unit='ns' will succeed.
dt = pd.to_datetime(dtarr[-3:], unit=unit) # tail values have higher chance with later time not in 1970
if (dt.year > 1970).any(): return pd.to_datetime(dtarr, unit=unit)
return pd.to_datetime(dtarr, unit='D')
print(infer_as_datetime([0,365,366]),infer_as_datetime(['1971-12-30 12:34:01.314','2015-01-30 22',]),infer_as_datetime([1442315569.315]),infer_as_datetime([1442315569000]),infer_as_datetime([1442315569000000]),infer_as_datetime([1442315569000000000]))
Expected Output
Output of infer_as_datetime(dtarr)
DatetimeIndex(['1970-01-01', '1971-01-01', '1971-01-02'], dtype='datetime64[ns]', freq=None) DatetimeIndex(['1971-12-30 12:34:01.314000', '2015-01-30 22:00:00'], dtype='datetime64[ns]', freq=None) DatetimeIndex(['2015-09-15 11:12:49.315000'], dtype='datetime64[ns]', freq=None) DatetimeIndex(['2015-09-15 11:12:49'], dtype='datetime64[ns]', freq=None) DatetimeIndex(['2015-09-15 11:12:49'], dtype='datetime64[ns]', freq=None) DatetimeIndex(['2015-09-15 11:12:49'], dtype='datetime64[ns]', freq=None)
Metadata
Metadata
Assignees
Labels
DatetimeDatetime data dtypeDatetime data dtypeEnhancementNeeds DiscussionRequires discussion from core team before further actionRequires discussion from core team before further action