这是对 @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)
使用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)
另一种选择是在数据框列标题对象上使用列表理解,这样您就不会操作或复制整个数据框:
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)