2017-07-28 8 views
-1

Ich bin ein Wörterbuch mit einigen der Einträge in den Datenrahmen ersetzen:Pandas: Ersetzen vollständige Übereinstimmung String aus Wörterbuch

dict1 = { 
    "Republic of Korea": "South Korea", 
    "United States of America": "United States", 
    "United Kingdom of Great Britain and Northern Ireland": "United Kingdom", 
    "China, Hong Kong Special Administrative Region": "Hong Kong" 
} 

df.replace() fast Verwendung führt die Arbeit:

energy['Country'] = energy['Country'].replace(dict1, regex=True)

Allerdings erkannte ich, dass die Funktion ersetzt jede Zeichenfolge Übereinstimmung, und ich möchte die Ersetzung-Funktion auf vollständige Zeichenfolge entspricht jetzt, dass ich unerwünschte Ersetzungen bekommen wie:

"Democratic People's Republic of Korea" miss-cleaned as "Democratic People's South Korea"

Ich habe bereits versucht, einen regulären Ausdruck im Wörterbuch zu verwenden, aber es scheint nicht zu funktionieren.

Irgendeine Idee? Danke im Voraus.

+0

@Wiktor Ich würde nicht sagen, dass dies eine doppelte Frage ist, da ich versucht habe, den Antworten zu folgen, auf die Sie verweisen und die es nicht funktionieren lassen konnten. Auf der anderen Seite ist es mit Regex verbunden, solange meine Frage mit einer Nicht-Regex-Methode beantwortet wurde. Ich weiß, dass es für fortgeschrittene Benutzer leicht ist, Einsicht von verschiedenen Methoden zu bekommen, aber das ist nicht immer der Fall für Anfänger wie mich. Lassen Sie uns StackOverflow sanft halten. Grüße. – Camilo

Antwort

2

Entfernen Sie regex=True, um den vollständigen Austausch anzugeben.

+0

Funktioniert perfekt. Kannst du mir einen Hinweis geben warum? Ich habe die Dokumentation zu 'pd.replace()' gelesen, aber die Option 'regex' nicht verstanden. – Camilo

+0

In meinem Verständnis, wenn Sie Regex = True geben, dann erwartet es Eingabe als regulären Ausdruck. In diesem Fall wird es nicht als eine ganze Zeichenfolge übereinstimmen. –

Verwandte Themen