У меня есть кросс-таблица Pandas, созданная из NumPy массивов нулей и единиц.После создания кросс-таблицы с помощью: ct = pd.crosstab(index=np.array(labels), columns=np.array(cols)
у меня есть кросс-таблица, которая выглядит следующим образом:
col_0 0 1
row_0
---------------------
0 618 53
1 53 79
Я хотел добавить сюда столбец для процентов ошибок ложных срабатываний и ложных срабатываний.Я добавил новый столбец в кросс-таблицу, используя ct[2] = ct.apply(lambda row: row[0] + row[1], axis = 1)
, который добавил столбец суммы первых двух столбцов.Я хотел бы добавить четвертый столбец, который будет вычислять ct [0] [0], разделенный на сумму для первой строки, и ct [1] [1], разделенный на сумму для второй строки, и добавить этот столбец в ct[3].Я попытался:
for i,y in ct.iterrows():
ct[3] = ct.apply(lambda y: y[i]/y[2] , axis = 1)
, но поскольку он выполняется дважды, он перезапишет столбец со вторым результатом.Я пытался использовать ct[3][i]
безрезультатно.Использование lambda y: y[1] if y==0 else y[0]
не работает.Каков метод добавления нового столбца в фрейм данных / кросс-таблицу с расчетом на основе условий для существующих значений?