Applying uppercase to a column in pandas dataframe
str.upper()
wants a plain old Python 2 string
unicode.upper()
will want a unicode not a string (or you get TypeError: descriptor 'upper' requires a 'unicode' object but received a 'str')
So I'd suggest making use of duck typing and call .upper()
on each of your elements, e.g.
df['1/2 ID'].apply(lambda x: x.upper(), inplace=True)
This should work:
df['1/2 ID'] = map(lambda x: str(x).upper(), df['1/2 ID'])
and should you want all the columns
names to be in uppercase format:
df.columns = map(lambda x: str(x).upper(), df.columns)
If your version of pandas is a recent version then you can just use the vectorised string method upper
:
df['1/2 ID'] = df['1/2 ID'].str.upper()
This method does not work inplace, so the result must be assigned back.