From e06aa5a0147044f23259babed035b26d71117277 Mon Sep 17 00:00:00 2001 From: Bert Palm <bert.palm@ufz.de> Date: Sat, 21 Mar 2020 04:17:14 +0100 Subject: [PATCH] creation with named series and columns fix --- dios/dios.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dios/dios.py b/dios/dios.py index 66583cb..d1d182e 100644 --- a/dios/dios.py +++ b/dios/dios.py @@ -97,7 +97,7 @@ class DictOfSeries: self._data = pd.Series(dtype='O', index=index.unique()) if data is not None: - self._init_insert_data(data, columns) + self._init_insert_data(data) # self._data contain nans at locations, where no # data was present, but a column-name was given @@ -116,23 +116,29 @@ class DictOfSeries: self._data.name = '_data' self._data.index.name = 'columns' - def _init_insert_data(self, data, columns): + def _init_insert_data(self, data): """ Insert items of a iterable in self""" data = list(data) if _is_iterator(data) else data + cols_empty = self.columns.empty if isinstance(data, dict) or _is_dios_like(data): for k in data: - if columns is None or k in self.columns: + if cols_empty or k in self.columns: self._insert(k, data[k]) elif isinstance(data, pd.Series): - self._insert(data.name or 0, data) + name = data.name or 0 + if not cols_empty: + # overwrite by columns + if data.name is None or data.name not in self.columns: + name = self.columns[0] + self._insert(name, data) elif _is_list_like(data): data = data if _is_nested_list_like(data) else [data] - if self.columns.empty: + if cols_empty: self._data = pd.Series(dtype='O', index=pd.RangeIndex(len(data))) elif len(data) != len(self.columns): -- GitLab