Сохранить несколько словарей как отдельные листы Excel - PullRequest
0 голосов
/ 18 октября 2019

У меня есть 3 словаря
true_positive_count , false_positive_count and true_negative_count содержит имена классов в качестве ключей, содержащие целые числа в качестве значений
пример -
count_true_positives = {"A" : 3 , "B" : 4}
count_false_negatives = {"A" : 2 , "B" : 0}
count_false_positives = {"A" : 9 , "B" : 1}
Яобъединяя их в один словарь, называемый confusion_matrix, циклически перебирая имена классов и выбирая счетчики для соответствующих классов. Таким образом, для этого примера цикл будет

for class_name in class_names:
    conf_matrix = {}
    conf_matrix["tp"] = count_true_positives[class_name]
    conf_matrix["fp"] = count_false_positives[class_name]
    conf_matrix["fn"] = count_false_negatives[class_name]

Я хотел бы сохранить conf_maxtrix для каждого класса в виде листа Excel внутри рабочей книги Excel с именем листа в качестве имени класса.
Как мне это сделать? (Python 3.x)

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Использовать Xlsxwriter:

import xlsxwriter

# Create a workbook and add a worksheet for each class.
workbook = xlsxwriter.Workbook('my_excel_file.xlsx')

for class_name in class_names:
    worksheet = workbook.add_worksheet(class_name)

   # Add the data you want
   row = 0
   col = 0
   worksheet.write(row, col, <here goes your data>)


workbook.close()

Вы можете добавить листы с индивидуальным именем, используя функцию add_worksheet.

0 голосов
/ 18 октября 2019

Если вам нужен файл xls, вы можете использовать этот модуль xlwt, иначе используйте xlsxwriter, например @ SimonFink

import xlwt # to writing file excel with xls extension

location="my_file.xls"#path + file name if the python code there isn't in the same folder
workbook = xlwt.Workbook()

# example row and column of the cell
row=2
col=2

for class_name in class_names:
    sheet=wb.add_sheet(class_name)
    #other your code
    sheet.write(row,col,#your data)

workbook.save(location)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...