Python:映射器函数参数在将重命名方法传递给数据帧时不起作用



我是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())

这将操作值而不是列标头。

相关内容

  • 没有找到相关文章

最新更新