如何使用lambda函数更改pandas df中任意列的名称?

Bla*_*ard 6 python lambda rename pandas

有没有办法在pandas dataframe中使用lambda但不是全部更改某些列名?例如,假设该数据帧具有其名称是列osx,centos,ubunto,windows.在这个数据框中,我想用附加的列名替换所有列名x,所以在这种情况下,我可以通过以下方式重命名列名:

df.rename(columns=lambda x: x+'x')
Run Code Online (Sandbox Code Playgroud)

但是,如果我想重命名除了以外的所有列名ubunto,我该怎么办呢?因此,我希望得到的是数据帧,其名称是osxx,centosx,ubunto,windowsx.实际上,我真正的数据框有更多的列,所以我不喜欢使用通常的字典语法一个一个地写出来,而是希望在lambda可行的情况下依靠函数.

谢谢.

wai*_*kuo 12

一个三元运营商可能会实现你的目标:

os_list = ['osxx', 'centos', 'windowsx']    
df.rename(columns=lambda x: x+'x' if x in os_list else x)
Run Code Online (Sandbox Code Playgroud)