def _drop_collections(self, df):
        """
        Drops columns containing collections (i.e. sets, dicts, lists) from a DataFrame.

        :param pandas.DataFrame df: Usually self._data.
        :return: pandas.DataFrame
        """
        all_cols = df.columns
        keep_cols = []

        # Check whether each column contains collections.
        for c in all_cols:
            if len(self._col_type_set(c, df).intersection([set, dict, list])) == 0:
                keep_cols.append(c)
        return df[keep_cols]