使用多行作为 Pandas 的列标题

nea*_*lob 1 python header multi-index pandas

我有一个按如下方式导入的数据框。

df = pd.read_excel("./Data.xlsx", sheet_name="Customer Care", header=None)
Run Code Online (Sandbox Code Playgroud)

我想将前三行设置为列标题,但不知道如何执行此操作。我尝试了以下方法:

df.columns = df.iloc[0:3,:]
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

我在这个答案中看到了类似的东西。但它仅适用于所有子列都将以相同方式命名的情况,这不一定是这种情况。

任何建议将不胜感激。

iam*_*ame 7

df = pd.read_excel(
    "./Data.xlsx", 
    sheet_name="Customer Care", 
    header=[0,1,2]
)
Run Code Online (Sandbox Code Playgroud)

这将告诉 pandas 将 excel 文件的前三行作为多索引列标签读取。

如果要在加载后修改行,请将它们设置为列

#set the first three rows as columns
df.columns=pd.MultiIndex.from_arrays(df.iloc[0:3].values)
#delete the first three rows (because they are also the columns
df=df.iloc[3:]
Run Code Online (Sandbox Code Playgroud)