0

I have a pandas' dataframe with a column that is of datatype: datetime64[ns].

How do I convert the whole series to a Python's Datetime.datetime objects? On the individual object there is a function called to_datetime(), but I can't call this function on the series.

Thank you

code base 5000
  • 3,812
  • 13
  • 44
  • 73
  • It is really problematic, because it automatically cast to pandas datetimes, but is possible convert to `numpy array` of dates by `df.Date.dt.to_pydatetime()` – jezrael Feb 06 '17 at 12:42
  • So this `df.Date = df.Date.dt.to_pydatetime()` still return `Date datetime64[ns]` – jezrael Feb 06 '17 at 12:44
  • better it is explain [here](http://stackoverflow.com/a/23191196/2901002) – jezrael Feb 06 '17 at 13:08

1 Answers1

2

If performance is a concern I would advise to use the following function to convert those columns to date_time:

def lookup(s):
    """
    This is an extremely fast approach to datetime parsing.
    For large data, the same dates are often repeated. Rather than
    re-parse these, we store all unique dates, parse them, and
    use a lookup to convert all dates.
    """
    dates = {date:pd.to_datetime(date) for date in s.unique()}
    return s.apply(lambda v: dates[v])
to_datetime: 5799 ms
dateutil:    5162 ms
strptime:    1651 ms
manual:       242 ms
lookup:        32 ms
erip
  • 16,374
  • 11
  • 66
  • 121
SerialDev
  • 2,777
  • 20
  • 34