代码之家  ›  专栏  ›  技术社区  ›  madmarine2100

Python DataFram导出到Excel覆盖上一行

  •  0
  • madmarine2100  · 技术社区  · 11 月前

    我试图导出到Excel,它一直覆盖信息,所以我只得到最后一行。我浏览了这里所有类似的帖子,但所有的解决方案都不起作用。

    代码相对简单;我正在调用一个函数来创建一个包含用于字数统计的子词典的词典。这一切都很好。问题是将其导出到excel。

    Files = FileList()
    for file in Files:
        results = {file:(KeySearch(file,b))}
        data = pd.DataFrame.from_dict(results, orient = 'index')
        print(data)
        data.to_excel('GFG.xlsx')
    

    数据打印良好,excel文件格式正确。问题是这只是最后一行。

    我明白它正在被覆盖,但我不知道如何绕过它。

    • 我已经尝试删除数据处的缩进(以及这种缩进的几种排列)

    • 我已经试着把它放在单独的词典里了。

    • 我已经试过把它放在一个列表中并附加它;这种 虽然有效,但每个附录都包含了每个附录中的所有3行,情况也是如此 复制。

    我知道我可能错过了一些愚蠢的东西,但我真的已经仔细研究了我遇到的每一个解决方案,但似乎都不起作用。任何帮助都将不胜感激。

    1 回复  |  直到 11 月前
        1
  •  0
  •   JayPeerachai    11 月前

    每次你打电话 data.to_excel('GFG.xlsx') ,文件将被重新创建。

    您可以简单地将每个结果先附加到DataFrame中,例如。 all_data = pd.concat([all_data, data]) 。然后,将最后一行移出迭代。

    for file in Files:
        results = {file: KeySearch(file, b)}
        data = pd.DataFrame.from_dict(results, orient='index')
        all_data = pd.concat([all_data, data])
    
    all_data.to_excel('GFG.xlsx')