Gibt es eine präzise funktionale Möglichkeit, Spalten eines Deedle-Datenrahmens f
umzubenennen?Eine einfache Funktion zum Umbenennen von Spalten eines Deedle-Datenrahmens
f.RenameColumns(...)
ist verwendbar, aber mutiert den Datenrahmen, auf den es angewendet wird, so ist es ein wenig mühsam, den Umbenennungsvorgang idempotent zu machen. Ich habe so etwas wie f.RenameColumns (fun c -> (if c.IndexOf("_") < 0 then c else c.Substring(0, c.IndexOf("_"))) + "_renamed")
, was hässlich ist.
Was wäre schön, ist etwas, das einen neuen Rahmen aus dem Eingangsrahmen schafft, wie folgt aus: Frame(f |> Frame.cols |> Series.keys |> Seq.map someRenamingFunction, f |> Frame.cols |> Series.values)
aber dies wird durch den zweiten Teil gestolpert - die Art der f |> Frame.cols |> Series.values
ist nicht das, was durch den Frame
Konstruktor erforderlich ist.
Wie kann ich f |> Frame.cols |> Series.values
prägnant so transformieren, dass das Ergebnis vom Frame
Konstruktor genießbar ist?
Ausgezeichnet, danke. Wie immer ist es nur eine Frage von mir, nicht gründlich genug zu suchen, was in der Bibliothek verfügbar ist, und die Funktionsnamen stimmen nicht genau mit dem überein, was ich zu finden erwartet habe (obwohl 'mapColKeys' sehr gut beschreibend ist). Wenn überhaupt, hoffe ich, dass diese Frage/Antwort für Leute auftaucht, die google "_ deedle data frame rename columns" _, da die aktuellen Ergebnisse mager sind. – mt99