10

有没有办法使用 更改熊猫数据框中的某些列名lambda,但不是全部?例如,假设此数据框具有名称为osxcentosubunto、的列windows。在这个数据框中,我想用附加的列名替换所有列名x,所以在这种情况下,我可以通过以下方式重命名列名:

df.rename(columns=lambda x: x+'x')

但是,如果我想重命名除 之外的所有列名ubunto,我该怎么做?所以我想要得到的是名称为osxx, centosx, ubunto,的数据框windowsx。实际上,我的真实数据框有更多的列,所以我不喜欢使用常用的字典语法一一写出,而是希望在lambda可行的情况下依靠函数。

谢谢。

4

1 回答 1

17

三元运算符可能会实现您的目标:

os_list = ['osxx', 'centos', 'windowsx']    
df.rename(columns=lambda x: x+'x' if x in os_list else x)
于 2013-05-27T09:39:31.623 回答