我在 Pandas 中有以下数据头:
我正在努力获得以下结果:
我正在尝试执行命令:
df = df.reorder_levels([0, 1, 3, 2], axis='columns')
然而,这只是对行进行重新排序,我发现这里存在破坏数据一致性的风险。
您可以建议 pandas/pythonic 的方法吗?或者我应该检查哪些选项才能正确导出到 Excel(如图 2 所示)?
最佳答案
我最近遇到了这个问题,并发现了另一个肮脏但更简单的技巧。
只要第一个标题行具有不同的值,df.to_excel 就会将后续的标题行保存为单独的值。因此,在设置标题时,请使第一行成为唯一字符,并在其余代码中忽略它。
没有唯一的第一个标题行:
df1 = pd.DataFrame(columns=[['APPROACH #1', 'APPROACH #1', 'APPROACH #1', 'APPROACH #1', 'APPROACH #1'],
['CODE', 'CODE', 'CODE', 'CODE', 'CODE'],
['GLMNET', 'HYBER', 'LightGBM', 'XGB_1', 'XGB_2']])
Image of df1 result with merged header values
具有唯一的第一标题行:
df2 = pd.DataFrame(columns=[[1, 2, 3, 4, 5],
['APPROACH #1', 'APPROACH #1', 'APPROACH #1', 'APPROACH #1', 'APPROACH #1'],
['CODE', 'CODE', 'CODE', 'CODE', 'CODE'],
['GLMNET', 'HYBER', 'LightGBM', 'XGB_1', 'XGB_2']])
Image of df2 result with separate header values
希望这有帮助!
关于python - 如何在 Pandas 中拆分列标题并正确导出到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543015/