Python 在Pandas中解析多索引Excel文件

Python 在Pandas中解析多索引Excel文件,python,excel,parsing,pandas,time-series,Python,Excel,Parsing,Pandas,Time Series,我有一个带有三级列多索引的时间序列excel文件,如果可能的话,我想成功解析它。关于如何对堆栈溢出上的索引执行此操作(而不是对列执行此操作)有一些结果,parse函数有一个header,它似乎不包含行列表 Excel文件如下所示: A列是从A4开始的所有时间序列日期 B列有顶层1(B1)中层1(B2)底层1(B3)数据(B4-B100+) 列C具有空(C1)空(C2)低_级别2(C3)数据(C4-C100+) D列有空(D1)中间级别2(D2)低级别1(D3)数据(D4-D100+) 列E具有

我有一个带有三级列多索引的时间序列excel文件,如果可能的话,我想成功解析它。关于如何对堆栈溢出上的索引执行此操作(而不是对列执行此操作)有一些结果,
parse
函数有一个
header
,它似乎不包含行列表

Excel文件如下所示:

  • A列是从A4开始的所有时间序列日期
  • B列有顶层1(B1)中层1(B2)底层1(B3)数据(B4-B100+)
  • 列C具有空(C1)空(C2)低_级别2(C3)数据(C4-C100+)
  • D列有空(D1)中间级别2(D2)低级别1(D3)数据(D4-D100+)
  • 列E具有空(E1)空(E2)低级别2(E3)数据(E4-E100+)
因此有两个
low_-level
值许多
mid_-level
值和一些
top_-level
值,但技巧是top和mid-level值为null,并假定为左侧的值。因此,例如,上面的所有列都将top_level1作为顶部多索引值


到目前为止,我最好的想法是使用
转置
,但它将
未命名:#
填充到所有地方,并且似乎不起作用。在Pandas 0.13
read_csv
中,似乎有一个可以获取列表的
标题
参数,但这似乎不适用于
解析
,您可以
填充空值。我没有你的文件,但你可以测试

#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)] 

如果能得到一些支持率较低的选民的评论,我会很有帮助,这样我就知道下次该如何用不同的方式来表达这个问题了。谢谢
header=None
是我在这里缺少的,因为这避免了允许水平填充的多个
Unnamed
列名。做得好。