admin 管理员组文章数量: 888373
关于pandas多级表头,输出Excel文件空白行问题
找到pandas源码文件
excel.py
函数起始大概在源码551行,
贴上源码 函数_format_regular_rows
def _format_regular_rows(self):has_aliases = isinstance(self.header, (tuple, list, np.ndarray, Index))if has_aliases or self.header:self.rowcounter += 1# output index and index_label?if self.index:# check aliases# if list only take first as this is not a MultiIndexif self.index_label and isinstance(self.index_label, (list, tuple, np.ndarray, Index)):index_label = self.index_label[0]# if string good to goelif self.index_label and isinstance(self.index_label, str):index_label = self.index_labelelse:index_label = self.df.index.names[0]if isinstance(self.columns, ABCMultiIndex):self.rowcounter += 1if index_label and self.header is not False:yield ExcelCell(self.rowcounter - 1, 0, index_label, self.header_style)# write index_valuesindex_values = self.df.indexif isinstance(self.df.index, ABCPeriodIndex):index_values = self.df.index.to_timestamp()for idx, idxval in enumerate(index_values):yield ExcelCell(self.rowcounter + idx, 0, idxval, self.header_style)coloffset = 1else:coloffset = 0for cell in self._generate_body(coloffset):yield cell
注释掉这段代码即可
#if isinstance(self.columns, ABCMultiIndex):
# self.rowcounter += 1
其实在注释上已经解释了为什么会多一行空白,大概在 606行
# MultiIndex columns require an extra row
# with index names (blank if None) for
# unambiguous round-trip, unless not merging,
# in which case the names all go on one row Issue #11328
意思是多级表头 会多出一行 DEBUG 看到 控制参数为 self.rowcounter
至此问题已经解决.暂不清楚是否会有其他影响,希望下个版本能修复这个问题吧
本文标签: 关于pandas多级表头 输出Excel文件空白行问题
版权声明:本文标题:关于pandas多级表头,输出Excel文件空白行问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1693580652h230455.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论