如何使用lambda函数更改pandas df中任意列的名称? [英] How can I change name of arbitrary columns in pandas df using lambda function?

查看:242
本文介绍了如何使用lambda函数更改pandas df中任意列的名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用lambda更改pandas数据框中的某些列名称,但不是全部?例如,假设此数据帧具有名称为osxcentosubuntowindows的列.在此数据框中,我想用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以外的所有列名,该怎么办?所以我想得到的是名称为osxxcentosxubuntowindowsx的数据框.实际上,我的真实数据帧具有更多的列,所以我不喜欢使用常规的字典语法一一写出,而是想依靠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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆