【问题标题】:missing values in pandas column multiindex熊猫列多索引中的缺失值
【发布时间】:2020-10-20 20:00:33
【问题描述】:

我正在阅读这样的 pandas excel 表格:

使用

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

这会导致具有多索引的多索引数据帧。

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

您的帮助将不胜感激。

【问题讨论】:

    标签: python excel pandas multi-index


    【解决方案1】:

    假设您想要空字符串而不是重复第一个标签,您可以阅读 2 行并直接构建 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
    

    【讨论】:

    • 这似乎是正确的道路......但我遇到了一些麻烦。我认为您在第一个 sn-p 中不需要.index。另外,我不确定df1.index = index 是否正确——我们在这里处理的是多索引列。
    • 是的,我在最后一行使用了df1.columns = index。谢谢。
    • @Vadim:你说得对,我在 4 行代码中写了 2 个错别字 :-( 是时候让我休息一下了...
    猜你喜欢
    • 1970-01-01
    • 2020-05-01
    • 2020-12-03
    • 2016-07-06
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多