python - 更改多个列名称

标签 python pandas

假设我有一个包含这样列名称的数据框:

['a','b','c','d','e','f','g'] 

我想将名称从“c”更改为“f”(实际上是将字符串添加到列名中),因此整个数据框列名将如下所示:

['a','b','var_c_equal','var_d_equal','var_e_equal','var_f_equal','g']

好吧,首先我做了一个函数,用我想要的字符串更改列名:

df.rename(columns=lambda x: 'or_'+x+'_no', inplace=True)

但现在我真的很想了解如何实现这样的东西:

df.loc[:,'c':'f'].rename(columns=lambda x: 'var_'+x+'_equal', inplace=True)

最佳答案

您可以使用 list comprehension对于这样的:

代码:

new_columns = ['var_{}_equal'.format(c) if c in 'cdef' else c for c in columns]

测试代码:

import pandas as pd


df = pd.DataFrame({'a':(1,2), 'b':(1,2), 'c':(1,2), 'd':(1,2)})
print(df)
df.columns = ['var_{}_equal'.format(c) if c in 'cdef' else c
               for c in df.columns]
print(df)

结果:

   a  b  c  d
0  1  1  1  1
1  2  2  2  2

   a  b  var_c_equal  var_d_equal
0  1  1            1            1
1  2  2            2            2

关于python - 更改多个列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48734871/

相关文章:

python - QAbstractItemModel 和 QModelIndex 之间的相互作用

python - 在 Pandas (Python) 中与 groupby 和 where 合并

python - LSTM 预处理 : Build 3d arrays from pandas data frame based on ID

python - Scikit/Numpy/Pandas 值错误 : setting an array element with sequence

python - 在两组之后将系列转换为数据框

python-3.x - 在 Pandas 中将一列从垂直转换为水平时引发 ValueError

python - Panda 的箱线图但未显示箱线

Python 从另一个字典列表更新一个字典列表中的值

python - 在管道中的多个位置使用相同的规则(带或不带通配符)

python - 如何在 python 中运行这个 shell 脚本?