2015-07-07 13 views
10

Ich habe Probleme beim Anwenden von Großbuchstaben auf eine Spalte in meinem DataFrame.Anwenden von Großbuchstaben auf eine Spalte in Pandas Dataframe

Datenrahmen ist df.

1/2 ID ist der Spaltenkopf, der UPPERCASE anwenden muss.

Das Problem besteht darin, dass die Werte aus drei Buchstaben und drei Zahlen bestehen. Zum Beispiel ist rrr123 einer der Werte.

df['1/2 ID'] = map(str.upper, df['1/2 ID']) 

Ich habe einen Fehler:

TypeError: descriptor 'upper' requires a 'str' object but received a 'unicode' error.

Wie kann ich Großbuchstaben auf die ersten drei Buchstaben in der Spalte des Datenrahmen df gelten?

+0

str ist eine Methode der str Klasse und erwartet einen str nicht Unicode, 'str .upper (u "foo") -> error " –

Antwort

11

Diese Arbeit sollte:

df['1/2 ID'] = map(lambda x: x.upper(), df['1/2 ID']) 
+0

das gibt mir einen Fehler - '' float 'Objekt hat kein Attribut' outer '' – Gil5Ryan

+0

Ah ok, also haben Sie einige Werte, die auch keine Zeichenfolgen sind. Ändern Sie 'x.upper()' in 'str (x) .upper()' oder 'unicode (x) .upper()'. –

+0

du bist der mann, der str (x) .upper() hat gearbeitet! – Gil5Ryan

5

str.upper() will eine einfache alte Python 2 string

unicode.upper() eine Unicode kein String (oder Sie Typeerror erhalten möchten: Descriptor 'oberen' erfordert eine 'Unicode' Objekt, aber erhielt eine 'str')

Also würde ich vorschlagen, Ente eingeben und rufen Sie .upper() auf jedes Ihrer Elemente, z

df['1/2 ID'].apply(lambda x: x.upper(), inplace=True) 
+0

Vielen Dank für Ihre Hilfe! – Gil5Ryan

23

Wenn Ihre Version von Pandas ist eine aktuellere Version können Sie nur die Zeichenfolge Methode upper vektorisiert verwenden:

df['1/2 ID'].str.upper() 
+0

großartig, wie es in Place zu tun? es gibt keine Option arg to Upper()? – iratzhash

+0

@iratzhash du kannst nicht zurück zuweisen so 'df ['1/2 ID'] = df ['1/2 ID']. Str.upper()' – EdChum

+0

Ja, ich habe es herausgefunden. Ich dachte, es wäre comp. teuer. Schon am Rande meiner Computerressourcen. – iratzhash

Verwandte Themen