我是Python编程语言的初学者。
我有一个定义如下的数据框架:
Record1 = pd.Series({'Type':'Fork', 'Material':'metal'})
Record2 = pd.Series({'Type':'Knife','Material':'Plastic'})
Record3 = pd.Series({'Type':'Spoon','Material':'wood'})
S = pd.DataFrame([Record1,Record2,Record3])
我尝试将其应用于rename
方法,使用映射器函数将所有字符转换为大写:
S.rename(mapper = lambda x:x.upper(), axis = 1, inplace = True)
我期望得到以下数据帧,其中所有字符串都转换为大写:
TYPE MATERIAL
0 Fork metal
1 Knife Plastic
2 Spoon wood
但是当我在应用mapper函数后输入S时,我仍然得到小写字符。
有人能帮我吗?
您的rename()
lambda
表达式正在操作列标题,而不是值。通过在调用rename()
之前和之后使用S.columns
来检查这一点。
S.applymap(lambda x : x.capitalize())
这将操作值而不是列标头。