一次重命名列名

时间:2017-06-30 09:52:12

标签: python pandas dataframe

如何在列名称中间添加一个单词。像后缀,但不是在最后: 例如:

value_1 value_2 value_3

期望的输出: value_session_1 value_session_2 value_session_3

2 个答案:

答案 0 :(得分:2)

replacing很简单,应该有效:

df.columns = df.columns.str.replace('_','_session')

希望有所帮助。快乐的编码。

编辑: 就像@jezrael提到的那样

答案 1 :(得分:1)

mapformat一起使用,可以在之前或之后添加字符串:

df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.split('_')))

来自comment of John Galtstr.replace解决方案:

df.columns = df.columns.str.replace('_', '_session_')

样品:

df = pd.DataFrame(columns=['value_1','value_2','value_3'])
print (df)  
Empty DataFrame
Columns: [value_1, value_2, value_3]
Index: []
df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.split('_')))
print (df)
Empty DataFrame
Columns: [value_session_1, value_session_2, value_session_3]
Index: []
df.columns = df.columns.str.replace('_', '_session_')
print (df)
Columns: [value_session_1, value_session_2, value_session_3]
Index: []

编辑:

df = pd.DataFrame(columns=['va_lue_1','va_lue_2','va_lue_3'])
print (df)  
Empty DataFrame
Columns: [va_lue_1, va_lue_2, va_lue_3]
Index: []

df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.rsplit('_', 1)))
print (df)
Empty DataFrame
Columns: [va_lue_session_1, va_lue_session_2, va_lue_session_3]
Index: []