Запись выходных данных метода description () и текстовой метки на тот же лист Excel в Python - PullRequest
0 голосов
/ 21 октября 2019

Это продолжение связанного вопроса здесь: Создание чистого листа и добавление текста на этот новый лист с использованием Python, ExcelWriter и openpyxl

Я пытаюсь записать выводdf.describe () для конкретной ячейки в Excel с использованием ExcelWriter с механизмом openpyxl, а затем добавить описательную метку в ячейку выше. Я обнаружил, что различные методы создают дублирующую вкладку с добавленной "_1".

Мой код такой:

    with pd.ExcelWriter(f"data validation for {FNum}_{FName}.xlsx",engine='openpyxl') as writer:
        DWoldfiltered.to_excel(writer,sheet_name="Previous_DW_load")
        DWfiltered.to_excel(writer,sheet_name="Latest_DW_load")

        book = writer.book
        sheet = book.create_sheet("Summary_Data")
        sheet.cell(1,1).value = "Latest Load"
        sheet.cell(2,1).value = DWfiltered.describe()
    writer.save()

Однако, когда я выполняю его, я получаю сообщение об ошибке

"raise Value Error("Cannot convert {0!r} to excel".to format(value))

Данные, с которыми я работаю, имеют 0 в первых трех столбцах с NaN для последующих описательных значений, заменяют 0 на np.nan, а затем dropna не изменяет сообщение об ошибке.

Данные, которые я пытаюсь вставить, представляют собой фрейм данных, основанный на функции description (), и выглядят так:

         Col 1    Col 2    Col 3       col 4   Col 5
count        0        0        0         119    119
mean       NaN      NaN      NaN    24229.78  66645  
std        NaN      NaN      NaN       27877  74617
min        NaN      NaN      NaN        1080    457

1 Ответ

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

Не думаю, что ваша ошибка связана с 0.

Вместо этого я сделаю что-то подобное.


with pd.ExcelWriter(f"data validation for {FNum}_{FName}.xlsx",engine='openpyxl', mode='a') as writer:

    DWoldfiltered.to_excel(writer,sheet_name="Previous_DW_load") 
    DWfiltered.to_excel(writer,sheet_name="Latest_DW_load") 

    summary = pd.DataFrame({"Latest Load" : []})
    summary.to_excel(writer, sheet_name="Summary_Data")    
    describe.to_excel(writer, sheet_name ="Summary_Data", startrow=2, startcol=1)

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