pandas 使用Python重命名Excel文件的列名

wj8zmpe1  于 2023-06-04  发布在  Python
关注(0)|答案(1)|浏览(384)

我需要使用Python将源Excel文件的列名(如所附图像所示)更改为所需Excel文件中显示的格式。我能在这里得到解决方案吗?
源文件:

所需文件:

Python新手在网上找不到任何解决方案。

vatpfxk5

vatpfxk51#

你可以使用pandas:拆分模式“_”上的列标题,最后swaplevel将日期层次索引移动到顶部并重新分配。列表comp重命名日期索引,最后创建一个元组列表并重新分配给标头。

import pandas as pd

df = pd.read_excel("/path/to/your/file/Book1.xlsx")
df.columns = df.columns.str.split(pat="_", n=1, expand=True).swaplevel(0, 1)

top_level = [f"{x[:3]}-{x[3:]}" if x != "" else "" for x in df.columns.get_level_values(level=0).fillna("")]
bottom_level = list(df.columns.get_level_values(level=1))
hierarchical_columns = [(top_level[x], bottom_level[x]) for x in range(len(top_level))]

df.columns = pd.MultiIndex.from_tuples(hierarchical_columns)
print(df)

输出:

Jan-10           Jan-12          Jan-14         
  Transaction    Avg 90th Pct     Avg 90th Pct    Avg 90th Pct
0     Trans-1  1.001   2.5001  3.6001   4.8001  5.001   6.3001
1     Trans-2  2.001   3.5001  4.6001   5.8001  6.001   7.3001
2     Trans-3  3.001   4.5001  5.6001   6.8001  7.001   8.3001
3     Trans-4  4.001   5.5001  6.6001   7.8001  8.001   9.3001
4     Trans-5  5.001   6.5001  7.6001   8.8001  9.001  10.3001

相关问题