我正在尝试将非结构化的excel文件转换为结构化的文件。我的标题跨两行显示(1和2)用于标题SKU,数量和销售

   A              B                  C             D
1                                    Qty          Sales
2   SKU
3   2345       Nail Varnish          2              $15
4   2346       Eye liner             3              $18


我想要的输出一旦转换为数据框应如下所示

    SKU           Description        Qty          Sales
0   2345         Nail Varnish         2             $15
1   2346         Eye liner            3            $18


我试图在read_excel函数中将多行作为标头传递

df = pd.read_excel('D:\Sales.xlsx',header=[1,2])


但是正在获得输出为

    Unnamed:0_level_0  Unnamed:1_level_0         Qty               Sales
         SKU                 SKU           Unnamed:2_level_1   Unnamed:3_level_1

  0   2345             Nail Varnish             2                      $15
  1   2346             Eyeliner                 3                      $18


标头SKU也将应用于第二列。请指导如何解决此问题。

最佳答案

如果您事先知道列名,则可以

df = pd.read_excel('D:\Sales.xlsx', header=None, names=['SKU','Description','Qty','Sales'], skiprows=2)


解释


header=None不会从excel文件中获取默认标题
names将按顺序将列名称分配给您的数据框
skiprows将从您的excel中跳过前2行。

关于python - 如何将具有多个行标题的Excel数据插入Pandas数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55361711/

10-11 19:53
查看更多