Rossman_data_clean.ipynb got TypeError: dtype '<class 'datetime.datetime'>' not understood


(Junlin) #1

I was running rossman_data_clean.ipynb and got TypeError: dtype '<class 'datetime.datetime'>' not understood. I guess it’s something with the isoweek library?

from isoweek import Week
for df in (joined,joined_test):
    df["Promo2Since"] = pd.to_datetime(df.apply(lambda x: Week(
        x.Promo2SinceYear, x.Promo2SinceWeek).monday(), axis=1).astype(pd.datetime))
    df["Promo2Days"] = df.Date.subtract(df["Promo2Since"]).dt.days

raised this error:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-86abcdd8371d> in <module>
      2 for df in (joined,joined_test):
      3     df["Promo2Since"] = pd.to_datetime(df.apply(lambda x: Week(
----> 4         x.Promo2SinceYear, x.Promo2SinceWeek).monday(), axis=1).astype(pd.datetime))
      5     df["Promo2Days"] = df.Date.subtract(df["Promo2Since"]).dt.days

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/generic.py in astype(self, dtype, copy, errors, **kwargs)
   5689             # else, only a single dtype is given
   5690             new_data = self._data.astype(dtype=dtype, copy=copy, errors=errors,
-> 5691                                          **kwargs)
   5692             return self._constructor(new_data).__finalize__(self)
   5693 

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/internals/managers.py in astype(self, dtype, **kwargs)
    529 
    530     def astype(self, dtype, **kwargs):
--> 531         return self.apply('astype', dtype=dtype, **kwargs)
    532 
    533     def convert(self, **kwargs):

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/internals/managers.py in apply(self, f, axes, filter, do_integrity_check, consolidate, **kwargs)
    393                                             copy=align_copy)
    394 
--> 395             applied = getattr(b, f)(**kwargs)
    396             result_blocks = _extend_blocks(applied, result_blocks)
    397 

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/internals/blocks.py in astype(self, dtype, copy, errors, values, **kwargs)
    532     def astype(self, dtype, copy=False, errors='raise', values=None, **kwargs):
    533         return self._astype(dtype, copy=copy, errors=errors, values=values,
--> 534                             **kwargs)
    535 
    536     def _astype(self, dtype, copy=False, errors='raise', values=None,

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/internals/blocks.py in _astype(self, dtype, copy, errors, values, **kwargs)
    593 
    594         # convert dtypes if needed
--> 595         dtype = pandas_dtype(dtype)
    596         # astype processing
    597         if is_dtype_equal(self.dtype, dtype):

~/anaconda3/envs/fastai/lib/python3.7/site-packages/pandas/core/dtypes/common.py in pandas_dtype(dtype)
   2027         return npdtype
   2028     elif npdtype.kind == 'O':
-> 2029         raise TypeError("dtype '{}' not understood".format(dtype))
   2030 
   2031     return npdtype

TypeError: dtype '<class 'datetime.datetime'>' not understood

(Peter Walkley) #2

See this thread: Can't get the rossman_data_clean working

You need to delete the “.astype()” part.


(Junlin) #3

Thanks! :grin: