Почему мы заменяем значение 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
Замена нулей другими соответствующими данными (например, средним значением) называется вменением и обычно выполняется для моделей машинного обучения, поскольку они не могут принимать нулевые значения.
Это не изменит Среднее значение данных.
Обратите внимание, что если у вас слишком много нулей в одном столбце (обычно более 30%, но это следует рассматривать в каждом конкретном случае), то нам лучше не вменять, а отбрасывать строки с нулями.
Оно делает.
Причина, по которой мы это делаем, заключается в том, что многие алгоритмы не могут работать с сериями, содержащими NaN — одним из наиболее ярких примеров может быть преобразование Фурье и его производные. В отличие от более «обычных» операций, в которых NaN просто распространяются, но значительная часть данных может оставаться «чистой», анализ временных рядов мертв, если у вас есть хотя бы один NaN в середине данных.
Ну и замена на среднее обычно является наиболее разумным значением по умолчанию, но не всегда. Опять же, это заметно в анализе временных рядов - если вы пропустите весь период наблюдений в высокопериодических данных, замена средним значением исказит конечный результат гораздо больше, чем замена разумным приближением тренда «среднего» периода (обычно это однако несущественно, если заполненный период настолько велик, что влияет на анализ, анализ, вероятно, в любом случае является поддельным). Таким образом, это зависит от конкретной проблемы, и может потребоваться крайняя осторожность и знание предметной области, чтобы сделать это правильно.
скажем, ваше среднее значение до сих пор равно
5
, если вы добавите еще один элемент, который является5
, среднее значение останется прежним ..! это как(5+5+... n)/n =5