我有一个包含三级列 MultiIndex 的时间序列 excel 文件,如果可能的话我想成功解析它。关于如何对堆栈溢出的索引执行此操作的一些结果,但不是列和 parse
函数有一个 header
这似乎没有行列表。
ExcelFile 如下所示:
- A列是从A4开始的所有时间序列日期
- B 列有 top_level1 (B1) mid_level1 (B2) low_level1 (B3) 数据 (B4-B100+)
- C 列有 null (C1) null (C2) low_level2 (C3) 数据 (C4-C100+)
- D 列有空 (D1) mid_level2 (D2) low_level1 (D3) 数据 (D4-D100+)
- E 列有 null (E1) null (E2) low_level2 (E3) 数据 (E4-E100+)
- ...
所以有两个low_level
值很多mid_level
值(value)观和一些top_level
值,但诀窍是顶层和中层值为空,并假定为左侧的值。因此,例如,上面的所有列都将 top_level1 作为最高的多索引值。
到目前为止,我最好的想法是使用 transpose
, 但它填充 Unnamed: #
无处不在,似乎不起作用。在 Pandas 0.13 read_csv
似乎有一个 header
可以接受列表的参数,但这似乎不适用于 parse
.
最佳答案
您可以填充
空值。我没有你的文件,不过你可以测试一下
#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)]
关于python - 在 Pandas 中解析多索引 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147029/