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

17 浏览
0 Comments

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

在pandas数据框中,有没有办法使用lambda函数来更改一些列名,而不是全部更改?例如,假设这个数据框的列名是osx、centos、ubunto、windows。在这个数据框中,我想用每个列名后面加上x的方式来替换所有列名,所以在这种情况下,我可以通过以下方式重命名列名:

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

然而,如果我想重命名除了ubunto以外的所有列名,我该如何做呢?所以我想要的是一个数据框,它的列名是osxx、centosx、ubunto、windowsx。实际上,我的真实数据框有更多的列,所以我不想使用通常的字典语法逐个写出,而是希望能够依靠lambda函数来实现,如果可行的话。

谢谢。

0
0 Comments

问题出现的原因是想要通过使用lambda函数来改变pandas数据框中任意列的名称。

解决方法是使用ternary operator来实现:

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

0