From 223b8d8b13ffb4931311ea1f2e4f5e200c98119d Mon Sep 17 00:00:00 2001 From: Bert Palm <bert.palm@ufz.de> Date: Thu, 19 Mar 2020 22:10:12 +0100 Subject: [PATCH] fixed wrong dtype when use copy_empty --- dios/dios.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/dios/dios.py b/dios/dios.py index 46a0f17..66583cb 100644 --- a/dios/dios.py +++ b/dios/dios.py @@ -479,19 +479,23 @@ class DictOfSeries: return self.copy(deep=True) def copy(self, deep=True): - if not deep: - return DictOfSeries(data=self._data, itype=self._itype, cast_policy=self._policy, fastpath=True) - - new = DictOfSeries(itype=self.itype, columns=self.columns, cast_policy=self._policy, fastpath=True) - for c in self.columns: - new._data.at[c] = self._data.at[c].copy(deep=True) - return new + if deep: + data = pd.Series(dtype='O', index=self.columns) + for c in self.columns: + data.at[c] = self._data.at[c].copy(deep=True) + else: + data = self._data + kws = dict(itype=self._itype, cast_policy=self._policy) + return DictOfSeries(data=data, fastpath=True, **kws) def copy_empty(self, columns=True): - return DictOfSeries(columns=self.columns if columns is True else None, # correct - itype=self.itype, - cast_policy=self._policy, - fastpath=True) + data = None + if columns is True: # is correct + data = pd.Series(dtype='O', index=self.columns) + for c in self.columns: + data.at[c] = pd.Series(dtype=self._data.at[c].dtype) + kws = dict(itype=self._itype, cast_policy=self._policy) + return DictOfSeries(data=data, fastpath=True, **kws) def __str__(self): return self.__repr__() -- GitLab