在熊猫中读取多页眉Excel表格

时间:2019-03-08 15:25:12

标签: python excel pandas

我有一个没有任何索引列的多标题Excel工作表。当我读熊猫的excel时,它会将第一列视为索引。我希望熊猫创建索引而不是将第一列作为索引。任何帮助将不胜感激。

我尝试了以下代码:

df = pd.read_excel(file, header=[1,2], sheetname= "Ratings Inputs", parse_cols ="A:AA", index_col=None)

2 个答案:

答案 0 :(得分:0)

您是否尝试过reset_index()
your_data_frame.reset_index(drop=True,inplace=True)

答案 1 :(得分:0)

在我的测试中,read_csv似乎被多行标头打断了:index_col不存在或为“无”时,它的行为就像是0。

您在这里有2种可能的解决方法:

  1. reset_index,如@mounaim所建议:

    df = pd.read_excel(file, header=[1,2], sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", index_col=None).reset_index()
    

    除了第一列的标题用于命名MultiIndex df.columns并将第一列命名为`('index',')以外,几乎是正确的。因此,您必须重新创建它:

    df.columns = pd.MultiIndex.from_tuples([tuple(df.columns.names)]
                                       + list(df.columns)[1:])
    
  2. 分别阅读标题

    head = pd.read_excel('3x3.xlsx', header=None, sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", skiprows=1, nrows=2)
    df = pd.read_excel(file, header=2, sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", index_col=None).reset_index()
    df.columns = pd.MultiIndex.from_tuples(list(head.transpose().to_records(index=False)))