如何为除某些列之外的列名添加前缀?

Gab*_*lla 3 python pandas

这是对 @ScalaBoy在这里提出并由 @timgeb 回答的问题的改编 ,问题是相同的,除了它是关于前缀而不是后缀:

给定 pandas DataFrame,如何将前缀“new_”添加到除 Id 和 Name 两列之外的所有列?

import pandas as pd
data = [[1,'Alex',22,'single'],[2,'Bob',32,'married'],[3,'Clarke',23,'single']]
df = pd.DataFrame(data,columns=['Id','Name','Age','Status'])
Run Code Online (Sandbox Code Playgroud)

wwn*_*nde 7

使用add_prefix。该函数适用于整个数据框。要隐藏不需要重命名的列,请将它们设置为索引。重命名后,您可以重置索引。代码如下

df=df.set_index(['Id', 'Name']).add_prefix('new_').reset_index()



    Id    Name  new_Age new_Status
0   1    Alex       22     single
1   2     Bob       32    married
2   3  Clarke       23     single
Run Code Online (Sandbox Code Playgroud)


Sco*_*ton 5

另一种选择是在数据框列标题对象上使用列表理解,这样您就不会操作或复制整个数据框:

df.columns = [f'new_{i}' if i not in ['Name', 'Id'] else f'{i}' for i in df.columns]

df
Run Code Online (Sandbox Code Playgroud)

输出:

   Id    Name  new_Age new_Status
0   1    Alex       22     single
1   2     Bob       32    married
2   3  Clarke       23     single
Run Code Online (Sandbox Code Playgroud)