熊猫列多索引中的缺失值
Posted
技术标签:
【中文标题】熊猫列多索引中的缺失值【英文标题】: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'
,而我更喜欢使用不同的标签。我不能跳过第一行,因为我正在处理更大的数据帧,其中第一行和第二行包含重复标签(因此使用了多索引)。
您的帮助将不胜感激。
【问题讨论】:
【参考方案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 个错别字 :-( 是时候让我休息一下了...以上是关于熊猫列多索引中的缺失值的主要内容,如果未能解决你的问题,请参考以下文章