Импутация: почему мы заменяем значение nan на среднее и не влияет ли это на наши данные?

Почему мы заменяем значение nan в DataFrame на среднее, и когда мы его меняем, это не влияет на наши данные?

0     1.048242
1     1.688173 
2          NaN
3     0.194162
4     0.194162
5     0.493194
6          NaN
7     0.675041
8          NaN
9     0.101743
10    3.112086
df['view_duration'].fillna(mean,inplace = True)

0     1.048242
1     1.688173
2     0.938350
3     0.194162
4     0.194162
5     0.493194
6     0.938350
7     0.675041
8     0.938350
9     0.101743
10    3.112086

скажем, ваше среднее значение до сих пор равно 5, если вы добавите еще один элемент, который является 5, среднее значение останется прежним ..! это как (5+5+... n)/n =5

Yash Mehta 26.12.2022 10:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Замена нулей другими соответствующими данными (например, средним значением) называется вменением и обычно выполняется для моделей машинного обучения, поскольку они не могут принимать нулевые значения.

Это не изменит Среднее значение данных.

Обратите внимание, что если у вас слишком много нулей в одном столбце (обычно более 30%, но это следует рассматривать в каждом конкретном случае), то нам лучше не вменять, а отбрасывать строки с нулями.

Оно делает.

Причина, по которой мы это делаем, заключается в том, что многие алгоритмы не могут работать с сериями, содержащими NaN — одним из наиболее ярких примеров может быть преобразование Фурье и его производные. В отличие от более «обычных» операций, в которых NaN просто распространяются, но значительная часть данных может оставаться «чистой», анализ временных рядов мертв, если у вас есть хотя бы один NaN в середине данных.

Ну и замена на среднее обычно является наиболее разумным значением по умолчанию, но не всегда. Опять же, это заметно в анализе временных рядов - если вы пропустите весь период наблюдений в высокопериодических данных, замена средним значением исказит конечный результат гораздо больше, чем замена разумным приближением тренда «среднего» периода (обычно это однако несущественно, если заполненный период настолько велик, что влияет на анализ, анализ, вероятно, в любом случае является поддельным). Таким образом, это зависит от конкретной проблемы, и может потребоваться крайняя осторожность и знание предметной области, чтобы сделать это правильно.

Другие вопросы по теме