将数据框字典写入 excel 文件会产生错误

Posted

技术标签:

【中文标题】将数据框字典写入 excel 文件会产生错误【英文标题】:Writing dictionnary of dataframe into an excel file produce error 【发布时间】:2021-07-23 23:32:34 【问题描述】:

我有一个字典,其中键是字符串,值是数据框(熊猫数据系列)。我想将整个字典写入一个 excel 文件。

我希望每个键都是文件的工作表名,并且每个值都在工作表中报告。但是下面的代码只是添加了最后一个键和值并省略了其他的。

for key, val in dico2.items():
        #print(key)
        #print(val)
        print(type(val))
        val.to_excel(outdir_report + "/report_for_.xlsx".format(n), sheet_name=key, encoding ="utf-8")
        

迪科

dico2 = 'Model_SVC_ovr':                   C    F         M  accuracy  macro avg  weighted avg
precision  0.625000  0.0  0.500000       0.5   0.375000      0.402778
recall     0.833333  0.0  0.571429       0.5   0.468254      0.500000
f1-score   0.714286  0.0  0.533333       0.5   0.415873      0.445503
support    6.000000  5.0  7.000000       0.5  18.000000     18.000000, 'Model_SVC_ov':                   C    F         M  accuracy  macro avg  weighted avg
precision  0.625000  0.0  0.500000       0.5   0.375000      0.402778
recall     0.833333  0.0  0.571429       0.5   0.468254      0.500000
f1-score   0.714286  0.0  0.533333       0.5   0.415873      0.445503
support    6.000000  5.0  7.000000       0.5  18.000000     18.000000

我得到了什么:

如您所见,model_ovr 的 sheetname 不存在。也许你能帮帮我?

【问题讨论】:

【参考方案1】:

您正在创建一个新的 Excel 文件,而不是写入现有的文件。这就是为什么只有最后一个出现。您可以创建一个 writer 并使用它来编写所有工作表:

with pd.ExcelWriter(outdir_report + "/report_for_.xlsx".format(n)) as writer:  
    for key, val in dico2.items():
        val.to_excel(writer, sheet_name=key, encoding ="utf-8")

【讨论】:

谢谢,您认为可以在同一张纸上写而不是在另一张纸上写,我应该使用将键设置为相同吗? @kely789456123 考虑这种方法:datascience.stackexchange.com/questions/46437/…

以上是关于将数据框字典写入 excel 文件会产生错误的主要内容,如果未能解决你的问题,请参考以下文章

从列表的字典中提取列表,然后附加到数据框

将特定数据框列写入没有关联索引的字典值

在 Excel 文件中写入字典值

将字典添加为数据框中的新行

循环遍历数据框字典中的数据框

将字典写入文本文件?