我刚刚花了几个小时试图使它工作,我开始认为我想要不可能的事,尽管我很确定可以做到。我有一个带有multiindex标头(excel电子表格,三行标头)的pandas数据框。我肯定在看它,所以我知道它的存在,但是当我尝试根据官方文档重命名列时,被告知找不到列名。
表看起来像这样:
Test | Test1 | Test2
| abc | xyz | abc | xyz
geo1 | geo2 | geo1 | geo2 | geo1 | geo2
------------------------------------------------
a | x | 1 | 0.5 | 1 | 0.5
b | y | 2 | 0.2 | 2 | 0.2
c | z | 3 | 0.4 | 3 | 0.3
例如,我只是想将“ Test”更改为“ Boom”。测试是级别0中列名称的第一个值,但它不起作用。我使用了其中之一:
df.rename(columns={df.columns[0][0]: 'Boom'}, inplace=True, errors='raise')
df.rename(columns={df.columns[0][0]: 'Boom'}, level=0, inplace=True, errors='raise')
df.rename(columns={df.columns.values[0][0]: 'Boom'}, inplace=True, errors='raise')
问题是,即使我用硬编码对列名和级别进行编码,也仍然无法正常工作!这应该可以解决问题,因为它可以在我的其他脚本(2个级别,而不是3个)中起作用:
df.rename(columns={'Test': 'Boom'}, level=0, inplace=True, errors='raise')
错误很有趣,因为它告诉我找不到“ Test”列(从字面上告诉我它找不到仅命名的列...)。我在做什么错??
谢谢大家!
我刚刚花了几个小时试图使它工作,我开始认为我想要不可能的事,尽管我很确定可以做到。我有一个熊猫数据框,其中有一个多索引标头...
df.columns.set_levels(['Boom1','Boom2','Boom3'],level=0,inplace=True)
如果您的列是Boom1,...,Boom1000,请首先创建一个名称列表,依据是