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.