Verwenden von Pandas, um alle bis auf den letzten Punkt in einer Zeichenfolge wie folgt zu entfernen:
%Vor%meine gewünschte Ausgabe ist jedoch:
%Vor%Der Befehl zum Ersetzen zusammen mit dem Maskierungsziel scheint die nicht ersetzten Werte zu löschen und ich kann nicht sehen, wie ich das beheben kann.
Option 1
Dieses Regex-Muster mit str.replace
sollte gut funktionieren.
Die Idee ist, solange es mehr Zeichen zu ersetzen gibt, ersetzen Sie es. Hier ist eine Aufschlüsselung des verwendeten regulären Ausdrucks -
%Vor% Option 2
Wenn du dies mit count
machen willst, ist es nicht unmöglich, aber es ist eine Herausforderung. Sie können dies mit np.vectorize
vereinfachen. Definieren Sie zuerst eine Funktion -
Vectorize es -
%Vor% Rufen Sie nun die Funktion v
auf, übergeben Sie s
und die zu ersetzenden Zählungen -
Denken Sie daran, dass dies im Grunde eine verherrlichte Schleife ist. Das Python-Äquivalent dazu wäre etwas wie -
%Vor%Oder mithilfe eines Listenverständnisses -
%Vor% Sie möchten die maskierten Elemente ersetzen und den Rest unberührt lassen. Das ist genau das, was Series.where
tut, außer dass es die unmaskierten Werte ersetzt, so dass Sie die Maske negieren müssen.
Oder Sie können die Änderungen an Ort und Stelle vornehmen, indem Sie die maskierten Werte zuweisen. Dies ist wahrscheinlich billiger, aber destruktiv.
%Vor%