def _get_header_iterable(self):
"""Reformats all but the last header rows."""
df_clean = self.df.loc[:, self.df.columns.get_level_values(0) != ORG_ROW_NAMES]
if isinstance(df_clean.columns, pd.MultiIndex):
transpose_tuples = zip(*df_clean.columns.tolist())
header_values = []
for i, t in enumerate(transpose_tuples):
if i < len(transpose_tuples) - 1:
# Not the last column, aggregate repeated items, e.g. [['aa', 'aa', 'aa'], ['bb', 'bb', 'bb']]
header_values.append([list(g) for _, g in itertools.groupby(t)])
else:
# For the last column keep all elements in single list, e.g. ['a', 'b', 'c', 'a', 'b', 'c']
header_values.append(list(t))
return header_values
else:
return [df_clean.columns.tolist()]
评论列表
文章目录