Pandas 合并行作为 header 信息

Pandas combining rows as header info

这就是我使用 pandas

读取和创建数据框的方式
def get_sheet_data(sheet_name='SomeName'):
    df = pd.read_excel(f'{full_q_name}',
                       sheet_name=sheet_name,
                       header=[0,1],
                       index_col=0)#.fillna(method='ffill')
    df = df.swapaxes(axis1="index", axis2="columns")
    return df.set_index('Product Code')

打印这个表格化给我(这可能会有数百列):

我似乎无法将前两行添加到 header,我试过:

python:pandas - How to combine first two rows of pandas dataframe to dataframe header?

我在每一点上都失败了。我认为这是因为多索引,不一定是轴交换?但是使用:

https://pandas.pydata.org/docs/reference/api/pandas.MultiIndex.html

现在有点让我头疼。请帮我将这两行添加到 header?

df.columns 的输出量很大所以我把它砍掉了很多:

Index(['Product Code','Product Narrative\nHigh-level service description','Product Name','Huawei Product ID','Type','Bill Cycle Alignment',nan,'Stackable',nan,

并以:

结尾
nan], dtype='object')

我们创建新的列名并将它们设置为df.columns,新的列名是通过连接3个多索引headers和DataFrame的第一行生成的。

df.columns = ['_'.join(i) for i in zip(df.columns.get_level_values(0).tolist(), df.columns.get_level_values(1).tolist(), df.iloc[0,:].replace(np.nan,'').tolist())]