2017-09-18 1 views
1

Ich mache Sentiment-Analyse zum ersten Mal. Ich analysiere Yelp Bewertungen. Ich habe die Bewertungen in eine Liste umgewandelt, bevor Sie sie in eine CSV-Datei schreiben. Ich habe einige Probleme mit der Codierung mit diesen Bewertungen, so dass ich diesen Code ausführen.Anwenden einer Funktion auf eine Pandas-Datenframe Spalte mit Karte

df['newtext'] = map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']) 

Dies schafft eine neue Spalte (newtext), sondern sauberen Text bekommt ich diese Nachricht

Kartenobjekt bei 0x000001C1B9CE07F0

Ich verwende Python 3. Bitte helfen bin immer. Danke

+1

Von Zukunft bitte Pandas Fragen mit dem 'PANDAS' Tag markieren, ist es dort zu diesem Zweck –

Antwort

0

Versuchen Sie es. Es konvertiert das Kartenobjekt in eine Liste.

df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])) 
0

konvertieren nur die Karte Objekt in eine Liste, wie unten

gezeigt
df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])) 
+0

ich diese Fehlerfehler‚str‘Objekt erhalten hat kein Attribut‚decode‘ –

0

Pythons map Funktion liefert Kartenobjekte, die auf Listen gegossen werden müssen. Example

So können Sie nur werfen Sie Ihre Karte() -Aufruf in einer Liste()

df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])) 
1

Dies ist pandas. map wird die Dinge verlangsamen, besonders für große Datenframes. Sie sollten wissen, dass String-Spalten Vektormethoden bieten, die viel schneller sind als Maps und Loops.

Der pandäische Weg wäre, die str Accessor-Methoden zu nennen - encode und decode, die genau dasselbe tun, aber viel schneller.

df['newtext'] = df.comments.str.decode('latin-1').str.encode('ascii','ignore') 
+0

Attribute: Nur .str Accessor verwenden mit String-Werten, die np.object_ dtype in Pandas verwenden –

+0

Ich habe diesen Code versucht, aber ich bekomme diesen Fehler –

+0

@Analyticsbeginner Uh ... 'df.comments.astype (str) .str.decode ('latin-1'). str.encode ('ascii', 'ignore') ' –

Verwandte Themen