从pivot_table重命名列

时间:2014-03-20 15:05:42

标签: python pandas

我在数据框上运行pivot_table,结果列名是:

('firstvar', 8001)    ('firstvar', 8002)    ('secondvar', 8001)    ('secondvar', 8002)

但在我可以使用数据之前,我需要将列重命名为以下几行:

firstvar_8001    firstvar_8002    secondvar_8001    secondvar_8002

我试着看看在使用数据透视表时是否可以这样做,但我不认为可以。 因此,在我将其保存为csv之前,我正在寻找重命名数据框中列的解决方案

我需要在8000个代码可能会改变的多个文件上运行这个,所以我考虑使用正则表达式,但我找不到任何支持使用正则表达式重命名数据框中的列。

编辑:所以我现在意识到名称实际上是python元组,我正在努力将它们转换为字符串并立即加入它们。

编辑:所以我发现了一个笨拙的解决方案。我的问题是它不允许我重命名元组,所以我最终只是导出并重新导入以平整级别,然后以这种方式重命名它们。我真的不喜欢这个解决方案,所以如果有人建议更好的方法来做到这一点;我真的很感激!

1 个答案:

答案 0 :(得分:2)

迟到的回答但对其他人有帮助......

my_colnames = []
for i, a in enumerate(my_pivoted_table.columns.get_level_values(1)):
    my_colnames.append(str(a) + '_' + str(my_pivoted_table.columns.get_level_values(0)[i]))
my_pivoted_table.columns = my_colnames