def lengths(self, length_col=None): if length_col is not None and self.xtra is not None: lengths = self.xtra.iloc[:, df_names_to_idx(length_col, self.xtra)] lengths = _maybe_squeeze(lengths.values) else: lengths = [clip.num_samples for clip in self] return lengths
def label_from_df(self, cols:IntsOrStrs=1, label_cls:Callable=None, **kwargs): "Label `self.items` from the values in `cols` in `self.inner_df`." labels = self.inner_df.iloc[:,df_names_to_idx(cols, self.inner_df)] if is_listy(cols) and len(cols) > 1 and (label_cls is None or label_cls == MultiCategoryList): new_kwargs,label_cls = dict(one_hot=True, classes= cols),MultiCategoryList kwargs = {**new_kwargs, **kwargs} return self._label_from_list(_maybe_squeeze(labels), label_cls=label_cls, **kwargs)
def modified_label_from_df(self, cols:IntsOrStrs=1, label_cls:Callable=None, **kwargs): "Label `self.items` from the values in `cols` in `self.inner_df`." self.inner_df.labels.fillna('', inplace=True) labels = self.inner_df.iloc[:,df_names_to_idx(cols, self.inner_df)] assert labels.isna().sum().sum() == 0, f"You have NaN values in column(s) {cols} of your dataframe, please fix it." if is_listy(cols) and len(cols) > 1 and (label_cls is None or label_cls == MultiCategoryList): new_kwargs,label_cls = dict(one_hot=True, classes= cols),MultiCategoryList kwargs = {**new_kwargs, **kwargs} return self._label_from_list(_maybe_squeeze(labels), label_cls=label_cls, **kwargs)