2016-08-26 10 views
2

Neu zu Pandas und Python und haben eine Frage zum Ersetzen mehrerer Unicode-Zeichen innerhalb eines gesamten Datenrahmens. Verwenden von Python 2.7 und Importieren von einem Excel-Blatt. Mein Wunsch ist es, alle nicht-ASCII-Zeichen durch ihr ASCII-Äquivalent oder nichts zu ersetzen.Pandas Dataframe ersetzen

Beispiele:
u'SHOGUN JAPANESE \ u2013 GRAND '
u'COMFORT INN & SUITES \ xa0STONE MOUNTAIN'

Dies funktioniert, aber ist umständlich:

rawdf = rawdf["Account_Name"].str.upper().str.replace(u'\u2013', ' ').str.replace(u'\xa0', '-') + "|" + rawdf["COID"].str.upper() 

Dies funktionierte nicht :

rawdf = rawdf.replace(u'\u2013', ' ') 

Antwort

1

Sie können einen Enkodierungs-/Dekodierzyklus wie folgt ausführen:

Die Verwendung von 'Ignorieren' lässt Zeichen, die nicht in ASCII dargestellt werden können, gelöscht werden. Die Zwischenrepräsentation ist Bytes, daher müssen wir sie wieder in Zeichenfolgen codieren.

+0

Vielen Dank für den Vorschlag, aber jetzt wegen der Ignorieren, die Zeichen, wie Sie erwähnen, wurden fallen gelassen. Ich muss eigentlich einen Ersatz machen. Der Downstream-Prozess muss raw_set_1 mit clean_set_2 vergleichen, um mir den Unterschied zu machen. Momentan wird der Unterschied durch diese einzigartigen Charaktere verursacht. Andere Gedanken? – Sean

+0

Sie können stattdessen "ersetzen" verwenden, die die Zeichenposition beibehalten und es, glaube ich, mit einem "?" Füllen. – mdurant