L'application de majuscules à une colonne dans les pandas dataframe
Je vais avoir de la difficulté à appliquer les majuscules à une colonne dans mon DataFrame.
dataframe est df
.
1/2 ID
est en tête de la colonne qui doivent s'appliquer en MAJUSCULES.
Le problème est que les valeurs sont composées de trois lettres et de trois chiffres. Par exemple rrr123
est l'une des valeurs.
df['1/2 ID'] = map(str.upper, df['1/2 ID'])
J'ai une erreur:
TypeError: descriptor 'upper' requires a 'str' object but received a 'unicode' error.
Comment puis-je appliquer des majuscules pour les trois premières lettres dans la colonne du DataFrame df
?
str est une méthode de la str classe et s'attend à un str et non unicode,
str.upper(u"foo")-> error
OriginalL'auteur Gil5Ryan | 2015-07-07
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Ah ok, si vous avez quelques valeurs qui ne sont pas des chaînes. Changement
x.upper()
àstr(x).upper()
ouunicode(x).upper()
.vous êtes l'homme, le str(x).upper() a fonctionné!
OriginalL'auteur
Si votre version de pandas est une version récente, alors vous pouvez simplement utiliser le vectorisées méthode de chaîne
supérieur
:Cette méthode ne fonctionne pas en place, de sorte que le résultat doit être attribué en arrière.
vous ne pouvez pas vous devez attribuer l'arrière de sorte
df['1/2 ID'] = df['1/2 ID'].str.upper()
Oui, j'ai tout compris. J'ai pensé qu'il serait comp. cher. Déjà sur le bord de mes ressources de calcul.
OriginalL'auteur
str.upper()
veut un simple vieux Python 2 chaîneunicode.upper()
voulez une unicode pas une chaîne de caractères (ou que vous avez des TypeError: descripteur "haut", il faut un "unicode" objet, mais a reçu un 'str')Donc je suggère de faire usage de duck-typing et appel
.upper()
sur chacun de vos éléments, par exemple,Il n'y a pas de
inplace
paramètre pourapply
dans v0.23 de panads plus. Il semble donc que nous avons besoin de réaffecter la colonne avec cette solution.OriginalL'auteur