重命名熊猫中的一系列列

时间:2019-12-12 14:16:43

标签: python string pandas

我正在尝试对具有诸如Std 1Std 2,...,Std 8760之类的列名的巨大数据帧执行计算。鉴于Python无法识别空格(' '),我想更改这些名称,但是使用df.renamedf.replace之类的函数将很耗时,因为我必须指定所有列的新名称,或将相同的名称赋予所有列(我不想要)。

此外,我尝试使用df.columns.str.replace(' ','_')来消除空格并保持名称不变,但输出如下:

Index([u'_J_a_h_r_', u'_i_d___a_g_s___l_k_', u'_H_o_e_h_e___i_n___m_',
       u'_S_t_d_ _1_', u'_S_t_d_ _2_', u'_S_t_d___1_', u'_S_t_d_ _4_',
       u'_S_t_d_ _5_', u'_S_t_d_ _6_', u'_S_t_d_ _7_',
       ...
       u'_S_t_d_ _8_7_7_5_', u'_S_t_d_ _8_7_7_6_', u'_S_t_d_ _8_7_7_7_',
       u'_S_t_d_ _8_7_7_8_', u'_S_t_d_ _8_7_7_9_', u'_S_t_d_ _8_7_8_0_',
       u'_S_t_d_ _8_7_8_1_', u'_S_t_d_ _8_7_8_2_', u'_S_t_d_ _8_7_8_3_',
       u'_S_t_d___8_7_6_4_'],
      dtype='object', length=8787)

这并不能解决我的问题,因为我仍然可以看到“ Std”和下图之间的空格。

1 个答案:

答案 0 :(得分:0)

我不知道最好的方法,但是我会做这样的事情:

df_cols = df.columns.tolist()
map = str.maketrans({' ':'_'})
new_df_cols = [col.translate(map) for col in df_cols]

df.columns = new_df_cols