熊猫列multiindex中缺少值

时间:2020-06-30 13:37:20

标签: python excel pandas multi-index

我正在阅读像这样的熊猫excel表格:

enter image description here

使用

df = pd.read_excel('./question.xlsx', sheet_name = None, header = [0,1])

这将导致具有多索引的多索引数据框。

enter image description here

这里引起问题的是,默认情况下,空白字段用'Title'填充,而我更喜欢使用不同的标签。我无法跳过第一行,因为我正在处理更大的数据帧,其中第一行和第二行包含重复的标签(因此使用了multiindex)。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

假设您要使用空字符串而不是重复第一个标签,则可以读取这两行并直接构建MultiIndex:

df1 = pd.read_excel('./question.xlsx', header = None, nrows=2).fillna('')
index = pd.MultiIndex.from_arrays(df1.values)

它给出:

MultiIndex([('Title',        '#'),
            (     '',    'Price'),
            (     '', 'Quantity')],
           )

顺便说一句,如果您想为空字段使用不同的标签,则可以将其用作fillna的参数。

然后,您只需读取其余数据,然后手动设置索引:

df1 = pd.read_excel('./question.xlsx', header = None, skiprows=2)
df1.columns = index