Как вернуть значение ячейки фрейма данных в качестве имени переменной, переданной функции - PullRequest
0 голосов
/ 01 апреля 2020

Я сделал функцию, которая возвращает немного статистики, но я бы хотел, чтобы в последнем столбце было имя параметра, который вставляется в функцию.

Приведенный ниже код показывает функцию, и я хотел бы, чтобы в последнем столбце «Регион» было указано значение параметра, который я использовал для запуска функции «NameofRegion»

def roiStats(roi):
    data = {'Mean': np.mean(roi),
            'Median': np.median(roi),
            'StdDev': np.std(roi),
            'Min': np.min(roi),
            'Max': np.max(roi),
            'Region': NameofRegion}
    df = pd.DataFrame(data, index=[0])
    return df

roiStats(NameofRegion)

Я бы хотел думаю, ответ:

... "Region": roi

Но это возвращает ошибку: «Должно быть одномерным». Таким образом, самая большая проблема заключается в том, что NameofRegion - это обрезанная область изображения; 2d массив значений пикселей.

1 Ответ

0 голосов
/ 01 апреля 2020

Предположим, у вас есть регионы a, b, c, d. Вместо того, чтобы делать что-то вроде:

roia = #something a
roib = #something b
roic = #something c
roid = #something d

Подумайте над тем, чтобы сделать:

roi_dict = {
'a': #something a, 
'b': #something b,
'c': #something c,
'd': #something d
}

Тогда вы можете сделать так:

def roiStats("NameOfRegion", roi_dict):
    roi = roi_dict["NameOfRegion"]
    data = {'Mean': np.mean(roi),
            'Median': np.median(roi),
            'StdDev': np.std(roi),
            'Min': np.min(roi),
            'Max': np.max(roi),
            'Region': "NameofRegion"}
    df = pd.DataFrame(data, index=[0])
    return df

roiStats("NameofRegion", roi_dict)

Обратите внимание, что теперь NameofRegion будет строка и, таким образом, вы можете напечатать ее

...