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)
1条答案
按热度按时间vatpfxk51#
你可以使用pandas:拆分模式“_”上的列标题,最后swaplevel将日期层次索引移动到顶部并重新分配。列表comp重命名日期索引,最后创建一个元组列表并重新分配给标头。
输出: