我在将大写字母应用于DataFrame中的列时遇到了问题。
数据框为df
。
1/2 ID
是需要应用大写的列标题。
问题是这些值由三个字母和三个数字组成。例如,rrr123
是其中一个值。
df['1/2 ID'] = map(str.upper, df['1/2 ID'])
我收到了一个错误:
TypeError: descriptor 'upper' requires a 'str' object but received a 'unicode' error.
如何将大写字母应用于DataFrame df
列中的前三个字母?
答案 0 :(得分:51)
答案 1 :(得分:20)
这应该有效:
df['1/2 ID'] = map(lambda x: str(x).upper(), df['1/2 ID'])
并且您是否希望所有columns
名称都采用大写格式:
df.columns = map(lambda x: str(x).upper(), df.columns)
答案 2 :(得分:5)
str.upper()
需要一个普通的Python 2字符串
unicode.upper()
会想要一个unicode而不是一个字符串(或者你得到TypeError:描述符' upper'需要一个' unicode'对象但是收到了' str&# 39)
所以我建议使用鸭子打字并在每个元素上调用.upper()
,例如。
df['1/2 ID'].apply(lambda x: x.upper(), inplace=True)