假设我有一个包含这样列名称的数据框:
['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/