[英]Renaming a range of columns in pandas
我正在尝试对具有列名称的巨大数据框执行计算,例如Std 1
, Std 2
, ..., Std 8760
。 鉴于 Python 不识别空格(' ')
,我想更改这些名称,但使用df.rename
或df.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”和下图之间的空格。
我不知道最好的方法是什么,但我会做这样的事情:
df_cols = df.columns.tolist()
map = str.maketrans({' ':'_'})
new_df_cols = [col.translate(map) for col in df_cols]
df.columns = new_df_cols
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.