В таблице Python модуля Pandas получаю некорректный вывод столбца

Реализую две функции: основную dichotomy_ с расчетами и декоратор print_dichotomy с выводом этих расчетов на печать.

В декораторе объявляю переменную result_table, куда свожу данные расчета. При этом датафрейм при выводе "расползается" по колонкам (можно выполнить код, чтобы увидеть) и столбец Значения функции дает NaN, сваливая все значения, которые не NaN, в одну строку.

Заметил, что на это влияет строка func = ', '.join(map(lambda x: f'{f(x):.10f}', res)). Если ее убрать и выводить только столбцы Корни и Точность расчета, то расползания нет. При этом если переменную res реализовать как в исходном коде реализована переменная func, то также имеем NaN и вывод всех корней в одной строке.

Как обиться, чтобы датафрейм выводился с тремя столбцами без расползаний и значений NaN?

Код:

import numpy as np
import pandas as pd

def print_dichotomy(funcs):
    def wrapper(a,b, n, eps_func, eps_arg):
        *res, func, eps_list = list(funcs(a,b, n, eps_func, eps_arg))
        func = ', '.join(map(lambda x: f'{f(x):.10f}', res))
        result_table = pd.DataFrame()
        result_table['Корни'] = pd.Series(res)
        result_table['Значения функции'] = pd.Series(func)
        result_table['Точность расчета'] = pd.Series(eps_list)
        print('Значения функции составляют:\n', func)
        print('Точность расчета: ', eps_list)
        print(result_table)
    return wrapper 

def f(x):
    return 1.2-np.log(x)-4*np.cos(2*x)

@print_dichotomy
def dichotomy_(a, b, n, eps_func, eps_arg):  
    eps_list = []
    grid = np.linspace(a, b, n)
    for x, y in zip(grid, grid[1:]):
        mid = (y + x) / 2
        root = mid
        eps = (y-x) / 2
        eps_list.append(eps)
        if root:
            yield root
    yield eps_list 
    
dichotomy_(0.0001, 50, 100, 0.000001, 0.000001)

Ответы (0 шт):