Ein Anwendungsfall ist, dass Sie (einige) Ihrer Spalten mit einem Präfix benannt haben und die Spalten mit diesen Präfixen alle zusammen und in einer bestimmten Reihenfolge (nicht alphabetisch) sortiert haben möchten.
Sie könnten zum Beispiel alle Ihre Funktionen mit Ft_
, Etiketten mit Lbl_
usw., und Sie wollen zuerst alle nicht vorangestellten Spalten, dann alle Merkmale und dann die Bezeichnung. Sie können dies mit der folgenden Funktion erreichen (ich weise auf ein mögliches Effizienzproblem bei der Verwendung von sum
um Listen zu reduzieren, aber das ist kein Problem, es sei denn, Sie haben sehr viele Spalten, was bei mir nicht der Fall ist):
def sortedcols(df, groups = ['Ft_', 'Lbl_'] ):
return df[ sum([list(filter(re.compile(r).search, list(df.columns).copy())) for r in (lambda l: ['^(?!(%s))' % '|'.join(l)] + ['^%s' % i for i in l ] )(groups) ], []) ]