如何使用lambda函数更改pandas df中任意列的名称? [英] How can I change name of arbitrary columns in pandas df using lambda function?
问题描述
是否可以使用lambda
更改pandas数据框中的某些列名称,但不是全部?例如,假设此数据帧具有名称为osx
,centos
,ubunto
,windows
的列.在此数据框中,我想用x
附加的列名替换所有列名,因此在这种情况下,我可以通过以下方式重命名列名:
Is there any way to change some column names in pandas dataframe using lambda
, but not all? For example, suppose that this data frame has columns whose name are osx
, centos
, ubunto
, windows
. In this data frame, I want to replace all column names with that column name appended by x
, so in this case, I can rename the column name by:
df.rename(columns=lambda x: x+'x')
但是,如果我想重命名除ubunto
以外的所有列名,该怎么办?所以我想得到的是名称为osxx
,centosx
,ubunto
,windowsx
的数据框.实际上,我的真实数据帧具有更多的列,所以我不喜欢使用常规的字典语法一一写出,而是想依靠lambda
函数(如果可行).
However, if I want to rename all column names other than ubunto
, how can I do it? So what I want to get is data frame whose name is osxx
, centosx
, ubunto
, windowsx
. Actually, my true data frame has much more columns, so I don't like to write out one-by-one using usual dictionary syntax and instead want to lean on lambda
function if it's feasible.
谢谢.
推荐答案
A 三元运营商可能会实现您的目标:
A ternary operator might achieve your goal:
os_list = ['osxx', 'centos', 'windowsx']
df.rename(columns=lambda x: x+'x' if x in os_list else x)
这篇关于如何使用lambda函数更改pandas df中任意列的名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!