#pandas #dataframe #machine-learning #knn #imputation
Вопрос:
У меня есть фрейм данных с определенным количеством » nan » в определенных столбцах: (Общее количество строк более 50000)
Данные выглядят примерно так, как показано ниже (показано для 1-го из 3 столбцов)
A | B | C | D | E | F |
---|---|---|---|---|---|
10 | 20 | 5 | . | . | . |
nan | 54 | 10 | . | . | . |
23 | nan | 9 | . | . | . |
30 | 32 | 6 | . | . | . |
20 | 22 | nan | . | . | . |
. | . | . | . | . | . |
. | . | . | . | . | . |
В этих столбцах есть условие : A < B и A > C всегда для всех строк.
Я хочу использовать какой-нибудь вменяемый компьютер (предпочтительно KNNImputer), чтобы после вменения выполнялись вышеуказанные условия. (при применении импутера в общем виде оказывается, что многие ячейки не удовлетворяют этим условиям)
Как это может быть реализовано?
Комментарии:
1. Я не думаю, что мы можем сделать это, используя какие-либо доступные рамки. У вас должно быть
else
заявление. Я имею в виду, если вменяемый KNN не заполняет эти значения NaN в соответствии с вашими условиями, то что еще мы должны туда поместить?2. дело в том, что knn подходит для этого … но условия не всегда выполняются.. в этом сценарии нам нужно будет явно заменить такие «заполненные» ячейки некоторыми условиями, такими как ячейка(A) = min(ячейка(A), ячейка(B)) для всех строк…но мне было интересно, насколько это эффективно и есть ли какой-либо другой лучший способ..