import pandas as pd
import numpy as np
data = {'Name':['Tom', 'Tom', 'Jack', 'Terry'], 'Age':[20, 21, 19, 18]}
df = pd.DataFrame(data)
Nehmen wir an, ich habe einen Datenrahmen, der so aussieht. Ich versuche herauszufinden, wie die Spalte Name auf den Wert 'Tom' überprüft werden kann. Wenn ich ihn beim ersten Ersetzen durch den Wert 'FirstTom' finde und beim zweiten Erscheinen durch den Wert 'SecondTom' ersetze. . Wie erreichen Sie das? Ich habe die Ersetzungsmethode schon einmal verwendet, aber nur, um alle Toms durch einen einzigen Wert zu ersetzen. Ich möchte keine 1 am Ende des Werts hinzufügen, sondern die Zeichenfolge vollständig in etwas anderes ändern.
Bearbeiten:
Wenn der df unten eher so aussehen würde, wie würden wir in der ersten und zweiten Spalte nach Tom suchen und dann die erste Instanz durch FirstTom und die zweite Instanz durch SecondTom ersetzen
data = {'Name':['Tom', 'Jerry', 'Jack', 'Terry'], 'OtherName':[Tom, John, Bob,Steve]}
I don't want to add a 1 on the end of the value
BEARBEITEN: Für eine pro Zeile duplizierte Anzahl verwenden Sie:
Verwendung
GroupBy.cumcount
mitSeries.map
, jedoch nur für doppelte Werte vonSeries.duplicated
:Das dynamische Wörterbuch sollte wie folgt aussehen:
quelle
transform
quelle