Python 使用多行作为熊猫的列标题

Python 使用多行作为熊猫的列标题,python,pandas,header,multi-index,Python,Pandas,Header,Multi Index,我已经导入了一个数据帧,如下所示 df = pd.read_excel("./Data.xlsx", sheet_name="Customer Care", header=None) 我想将前三行设置为列标题,但不知道如何实现。我尝试了以下几点: df.columns = df.iloc[0:3,:] 但这似乎不起作用 我看到了类似的答案。但它仅适用于所有子列都将以相同的方式命名的情况,但情况并非如此 如有任何建议,将不胜感激 df = pd.read_excel( "./Data.

我已经导入了一个数据帧,如下所示

df = pd.read_excel("./Data.xlsx", sheet_name="Customer Care", header=None)
我想将前三行设置为列标题,但不知道如何实现。我尝试了以下几点:

df.columns = df.iloc[0:3,:]
但这似乎不起作用

我看到了类似的答案。但它仅适用于所有子列都将以相同的方式命名的情况,但情况并非如此

如有任何建议,将不胜感激

df = pd.read_excel(
    "./Data.xlsx", 
    sheet_name="Customer Care", 
    header=[0,1,2]
)
这将告诉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:]

你选择了一个很好的名字。谢谢你的回复。导入excel工作表后,是否有任何方法设置标题?我应该在问题中指定这一点,但我需要在这些行准备成为标题之前对其进行修改。@neanderslob我编辑了答案以解决这个问题。