flatten_columns¶
- pyhelpers.ops.flatten_columns(columns, ignore_linear_level=False)[source]¶
Flattens multi-level column names into single-level strings.
This function processes column names (either as tuples or lists of strings) by joining them with underscores; optionally, it simplifies column names when they represent linear hierarchies.
- Parameters:
columns (Iterable[Sequence[str]]) – Iterable of multi-level column names (each column is a sequence of strings).
ignore_linear_level (bool) – If
ignore_linear_level=True
, the function simplifies linear hierarchies by omitting single-child levels; defaults toFalse
.
- Returns:
List of flattened column names.
- Return type:
List[str]
Note
For MultiIndex columns, passes the result of
df.columns.tolist()
.When
ignore_linear_level=True
, parent levels with only one child are collapsed.Preserves original order of columns.
Examples:
>>> from pyhelpers.ops import flatten_columns >>> flatten_columns([('A', 'B'), ('A', 'C')]) ['A_B', 'A_C'] >>> flatten_columns([('A', 'B', 'C'), ('A', 'B', 'D')], ignore_linear_level=True) ['A_B_C', 'A_B_D'] >>> flatten_columns([('A', 'C'), ('B', 'C')], ignore_linear_level=True) ['A', 'B'] >>> flatten_columns([('A',), ('B', 'C')], ignore_linear_level=True) ['A', 'B']