在Pandas中parsing多索引Excel文件

我有一个三级列MultiIndex的时间序列Excel文件,我想成功parsing如果可能的话。 有一些关于如何做到这一点的堆栈溢出索引,但不是列和parse函数有一个header似乎没有行列表。

ExcelFile的外观如下所示:

  • A列是从A4开始的所有时间序列date
  • 列B具有top_level1(B1)mid_level1(B2)low_level1(B3)数据(B4-B100 +)
  • 列C具有空(C1)空(C2)低级2(C3)数据(C4-C100 +)
  • D列有空(D1)mid_level2(D2)low_level1(D3)数据(D4-D100 +)
  • 列E具有空(E1)空(E2)low_level2(E3)数据(E4-E100 +)

因此,有两个low_level值,许多mid_level值和一些top_level值,但技巧是顶级和中级的值为空,并假定为左侧的值。 因此,例如,上面的所有列都将top_level1作为顶级多索引值。

到目前为止,我的最好的想法是使用transpose ,但它填补了Unnamed: #无处不在,似乎没有工作。 在pandas0.13 read_csv似乎有一个header参数,可以采取一个列表,但这似乎并没有parse

你可以fillna空值。 我没有你的文件,但你可以testing

 #Headers as rows for now df = pd.read_excel(xls_file,0, header=None, index_col=0) #fill in Null values in "Headers" df = df.fillna(method='ffill', axis=1) #create multiindex column names df.columns=pd.MultiIndex.from_arrays(df[:3].values, names=['top','mid','low']) #Just name of index df.index.name='Date' #remove 3 rows which are already used as column names df = df[pd.notnull(df.index)]