Обробка відсутніх даних у Python за допомогою методу інтерполяції

Інтерполяція — це метод генерування точок між заданими точками. У цьому посібнику я покажу, як можна використовувати інтерполяцію для обробки відсутніх даних у Python. Ви можете переглянути повне відео цього підручника внизу цього блогу.

У Python інтерполяція — це техніка, яка здебільшого використовується для приписування відсутніх значень у кадрі або ряді даних під час попередньої обробки даних. Я продемонструю, як ви можете використовувати цей метод для оцінки відсутніх точок даних у ваших даних за допомогою LuckyTemplates.

Якщо ми подивимося на наші початкові дані тут, нижче, які представлені на верхньому графіку, ми побачимо, що є багато дірок або відсутніх даних, які ми не можемо побудувати на графіку, тому що там нічого немає. Але на нижньому графіку ми бачимо, що ми зробили деяку оцінку, щоб зрозуміти, як ці дані можуть виглядати. Фактичні дані представлені світло-блакитним кольором, а інтерпольовані дані – темно-синім.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Є кілька різних типів оцінки, які ми збираємося зробити. Ми виконаємо лінійну інтерполяцію, найближчу інтерполяцію, а потім зважену часову інтерполяцію. Кожен із них дасть нам дещо інші результати.

У прикладі вище використовується зважена інтерполяція часу, яка виглядає майже так само, як лінійна інтерполяція, за винятком того, що вона зважена на основі днів. Лінійна оцінка даних на основі нахилу між цими двома точками даних. Найближча інтерполяція має плоскіший тип оцінки, як ви можете бачити нижче, де ми дивилися на найближче значення та змогли оцінити, що існує між цими двома.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Отже, давайте перейдемо до блокнота Jupyter і принесемо його.

Зміст

Як використовувати інтерполяцію для обробки відсутніх даних у Python

Ви можете скористатися редактором сценаріїв, щоб створити сценарій, але це простіше. Ви отримуєте більше відгуків у своєму блокноті Jupyter. Отже, давайте задокументуємо те, що ми робимо. Коли ми скопіюємо та вставимо це до нашого Python Script Editor, це буде дуже чисто та зрозуміло.

Давайте імпортуємо бібліотеки, які нам потрібні, і ми збираємося імпортувати Pandas і зберегти їх як змінну PD. Ми збираємося імпортувати Numpy і зберегти його як змінну NP. Pandas — це бібліотека для маніпулювання даними, а Numpy також дозволяє нам маніпулювати даними та дає деяку лінійну алгебру.

Ми хочемо додати наш набір даних, і ми збираємося зберегти його як змінну df . І ми просто використаємо змінну Pandas ( pd ) і використаємо функцію read.csv . Потім ми збираємося скопіювати та вставити цей файл у те місце на нашому ПК. Моя знаходиться в моєму робочому каталозі, тож все, що мені потрібно зробити, це написати machines.csv і вкласти його в дужки.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

І давайте подивимося на наш набір даних просто за допомогою змінної df. Ви бачите, що це відбувається з 1 числа 2022 року аж до 25 числа. Це послідовні дні аж до 15-го числа, а потім бракує чотирьох днів 19-го числа, потім бракує трьох днів, коли ми доходимо до 22-го числа, і два дні бракує 25-го числа.

Пропущені дні не є відсутніми даними. Це просто не дані в нашому наборі даних. Ми матимемо справу з відсутніми даними, які ви бачите представленими цими значеннями NaN або без них.

Тепер, коли у нас є набір даних, давайте використаємо різні типи інтерпретації та збережемо їх як різні стовпці. Ми бачимо, що у нас є об’єкт , який представлений текстом, а також у нас є float .

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Я збираюся виокремити стовпець Date , використовуючи дужки. Тоді я збираюся використовувати дорівнює, щоб призначити це. Я збираюся використовувати змінну pd , а потім просто використовую функцію to_datetime. А потім я закрию цю функцію дужками та додам у стовпець Дата.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Ми бачимо, що тепер ми маємо дату як правильний тип даних.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Тут у нас є індекс, який позначається цифрами від 1 до 18. Коли ми робимо Лінійний, ці числа використовуватимуться для створення лінійного зв’язку між існуючими точками даних. Але ми також хочемо мати можливість використовувати зважену за часом інтерполяцію, яка розглядає час і дає нам результати на основі фактичних днів. Ми хочемо встановити стовпець Date як індекс, щоб ми могли його використовувати.

Я збираюся використовувати свою змінну кадру даних (df) і виконую set_index. Нам потрібно передати параметр під назвою inplace , щоб переконатися, що він передається назавжди. Отже, я збираюся використовувати inplace дорівнює true, а потім натисну shift і enter. І ви можете побачити, що числовий індекс зник, і ми маємо індекс Datetime.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Тепер ми можемо почати будувати ті стовпці, які нам потрібні. Давайте створимо стовпець, де ми інтерполюємо найближчу точку даних, яка заповнить ці відсутні значення найближчим значенням. Ми хочемо створити стовпець під назвою users_nearest і призначити його стовпцю Users .

Ми хочемо створити стовпець під назвою user_nearest і призначити його стовпцю користувача. І тепер, коли цей стовпець ізольовано, ми можемо використовувати функцію та натиснути клавішу Shift-tab, щоб побачити, які параметри приймає ця функція. Існує багато різних типів методів.

Ви бачите, що за замовчуванням лінійний, і якщо ви хочете, щоб він бачив усі різні методи, у цьому є інформація. Ви можете відкрити це до кінця, і тут буде багато інформації, яка дасть вам багато розуміння. Але завжди краще зайти на сайт Pandas і просто подивитися, що таке різні типи інтерполяції.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Тепер ми передамо потрібний метод і використаємо метод найближчої інтерполяції. Все, що нам потрібно зробити, це запустити це, і ви побачите, що створено стовпець. Якщо ми подивимося на цей конкретний рядок, ми побачимо, що це відсутнє значення. І ви можете бачити, що його було інтерпольовано, де взято найближче значення, і додано його сюди. Як бачите, ми більше не маємо пропущених значень для цього конкретного рядка.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Тепер давайте скопіюємо це двічі та змінимо назву цих стовпців на user_linear і user_time . Ми також змінимо методи, щоб відповідати нашим заголовкам. Ми можемо зміщувати та вводити, і ви бачите, що ми створили три стовпці на основі різних типів методів інтерполяції.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Далі я хочу створити ще один окремий стовпець, який дозволить нам вказати, які з них порожні, як прапорець у наших даних. Для цього ми будемо використовувати Numpy.

Отже, ми просто створимо новий стовпець під назвою df , а потім назвемо його прапорець. Ми збираємося призначити це зі знаком рівності. Потім ми будемо використовувати np , яка є нашою змінною Numpy. А потім ми використаємо функцію where , яка є умовною функцією. Ми встановлюємо умову, а потім отримуємо приклад істини та хибності. Ми використовуємо подвійне дорівнює, яке є рівним у Python. Коли це правда, ми хочемо сказати «Відсутні дані» . Іншим варіантом буде Дані .

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Ми можемо використовувати цей прапор у нашому візуалі. Коли ми опинимося у вашому блокноті, перейдіть до трансформації та натисніть «Запустити сценарій Python». Тепер є кілька різних кроків. Нам потрібно змусити це працювати в межахнавколишнє середовище.

У нас є всі наші коди, і нам потрібно додати ще кілька кроків. По-перше, коли ми маємо справу з датою-часом, нам потрібно додати параметр помилки, який говорить, якщо у нас є якісь помилки, ви можете примусово або спробувати змінити це. Отже, я збираюся поставити тут errors equal , а потім parenthesis coerce . Далі нам потрібно перепризначити змінну набору даних як df.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Коли ми натискаємо OKAY, ми отримуємо іншу помилку, і це те, що нам потрібно зробити, щоб виправити це. Якщо ми повторимо наші кроки, нам не потрібно форматувати дату. Ми дозволимо Python працювати з датами, оскільки дати унікальні для кожної платформи. Перше, що нам потрібно зробити, це позбутися Changed Type .

Обробка відсутніх даних у Python за допомогою методу інтерполяції

У нас немає стовпця Дата, оскільки дата є індексом. Отже, ми повертаємось до нашого сценарію Python, а потім просто скидаємо наш індекс df.reset_index . Ми кажемо, що хочемо скинути його до обходу стовпця Date у цій дужці, а потім хочемо зробити inplace = true .

Обробка відсутніх даних у Python за допомогою методу інтерполяції

І тепер у нас є дата, і всі інші типи даних готові.

Обробка відсутніх даних у Python за допомогою методу інтерполяції

Якщо ми представимо це у візуальному вигляді, то ось як це виглядає в трьох різних методах інтерполяції при обробці відсутніх даних у Python.

Обробка відсутніх даних у Python за допомогою методу інтерполяції




Висновок

У цьому підручнику ви ознайомилися з трьома методами інтерполяції для обробки відсутніх даних. Ми обговорили методи лінійної, найближчої та зваженої інтерполяції часу.

Сподіваюся, ви знайдете це корисним і застосуєте його у своїй роботі. Ви можете переглянути повний відеопосібник нижче, щоб отримати докладніші відомості, і ознайомитися з посиланнями нижче, щоб дізнатися більше про обробку відсутніх даних у Python.

Все найкраще!

Гаелім


Що таке Power Query та мова M: детальний огляд

Що таке Power Query та мова M: детальний огляд

Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.

Функція автоматизації SharePoint | Вступ

Функція автоматизації SharePoint | Вступ

Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!

Підсумки в LuckyTemplates за допомогою DAX

Підсумки в LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.

Змінні LuckyTemplates Dax постійні: що це означає?

Змінні LuckyTemplates Dax постійні: що це означає?

Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.

Діаграма нахилу LuckyTemplates: огляд

Діаграма нахилу LuckyTemplates: огляд

Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.

Колірні теми LuckyTemplates для однорідної візуалізації

Колірні теми LuckyTemplates для однорідної візуалізації

Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.