Що таке Power Query та мова M: детальний огляд
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Інтерполяція — це метод генерування точок між заданими точками. У цьому посібнику я покажу, як можна використовувати інтерполяцію для обробки відсутніх даних у Python. Ви можете переглянути повне відео цього підручника внизу цього блогу.
У Python інтерполяція — це техніка, яка здебільшого використовується для приписування відсутніх значень у кадрі або ряді даних під час попередньої обробки даних. Я продемонструю, як ви можете використовувати цей метод для оцінки відсутніх точок даних у ваших даних за допомогою LuckyTemplates.
Якщо ми подивимося на наші початкові дані тут, нижче, які представлені на верхньому графіку, ми побачимо, що є багато дірок або відсутніх даних, які ми не можемо побудувати на графіку, тому що там нічого немає. Але на нижньому графіку ми бачимо, що ми зробили деяку оцінку, щоб зрозуміти, як ці дані можуть виглядати. Фактичні дані представлені світло-блакитним кольором, а інтерпольовані дані – темно-синім.
Є кілька різних типів оцінки, які ми збираємося зробити. Ми виконаємо лінійну інтерполяцію, найближчу інтерполяцію, а потім зважену часову інтерполяцію. Кожен із них дасть нам дещо інші результати.
У прикладі вище використовується зважена інтерполяція часу, яка виглядає майже так само, як лінійна інтерполяція, за винятком того, що вона зважена на основі днів. Лінійна оцінка даних на основі нахилу між цими двома точками даних. Найближча інтерполяція має плоскіший тип оцінки, як ви можете бачити нижче, де ми дивилися на найближче значення та змогли оцінити, що існує між цими двома.
Отже, давайте перейдемо до блокнота Jupyter і принесемо його.
Зміст
Як використовувати інтерполяцію для обробки відсутніх даних у Python
Ви можете скористатися редактором сценаріїв, щоб створити сценарій, але це простіше. Ви отримуєте більше відгуків у своєму блокноті Jupyter. Отже, давайте задокументуємо те, що ми робимо. Коли ми скопіюємо та вставимо це до нашого Python Script Editor, це буде дуже чисто та зрозуміло.
Давайте імпортуємо бібліотеки, які нам потрібні, і ми збираємося імпортувати Pandas і зберегти їх як змінну PD. Ми збираємося імпортувати Numpy і зберегти його як змінну NP. Pandas — це бібліотека для маніпулювання даними, а Numpy також дозволяє нам маніпулювати даними та дає деяку лінійну алгебру.
Ми хочемо додати наш набір даних, і ми збираємося зберегти його як змінну df . І ми просто використаємо змінну Pandas ( pd ) і використаємо функцію read.csv . Потім ми збираємося скопіювати та вставити цей файл у те місце на нашому ПК. Моя знаходиться в моєму робочому каталозі, тож все, що мені потрібно зробити, це написати machines.csv і вкласти його в дужки.
І давайте подивимося на наш набір даних просто за допомогою змінної df. Ви бачите, що це відбувається з 1 числа 2022 року аж до 25 числа. Це послідовні дні аж до 15-го числа, а потім бракує чотирьох днів 19-го числа, потім бракує трьох днів, коли ми доходимо до 22-го числа, і два дні бракує 25-го числа.
Пропущені дні не є відсутніми даними. Це просто не дані в нашому наборі даних. Ми матимемо справу з відсутніми даними, які ви бачите представленими цими значеннями NaN або без них.
Тепер, коли у нас є набір даних, давайте використаємо різні типи інтерпретації та збережемо їх як різні стовпці. Ми бачимо, що у нас є об’єкт , який представлений текстом, а також у нас є float .
Я збираюся виокремити стовпець Date , використовуючи дужки. Тоді я збираюся використовувати дорівнює, щоб призначити це. Я збираюся використовувати змінну pd , а потім просто використовую функцію to_datetime. А потім я закрию цю функцію дужками та додам у стовпець Дата.
Ми бачимо, що тепер ми маємо дату як правильний тип даних.
Тут у нас є індекс, який позначається цифрами від 1 до 18. Коли ми робимо Лінійний, ці числа використовуватимуться для створення лінійного зв’язку між існуючими точками даних. Але ми також хочемо мати можливість використовувати зважену за часом інтерполяцію, яка розглядає час і дає нам результати на основі фактичних днів. Ми хочемо встановити стовпець Date як індекс, щоб ми могли його використовувати.
Я збираюся використовувати свою змінну кадру даних (df) і виконую set_index. Нам потрібно передати параметр під назвою inplace , щоб переконатися, що він передається назавжди. Отже, я збираюся використовувати inplace дорівнює true, а потім натисну shift і enter. І ви можете побачити, що числовий індекс зник, і ми маємо індекс Datetime.
Тепер ми можемо почати будувати ті стовпці, які нам потрібні. Давайте створимо стовпець, де ми інтерполюємо найближчу точку даних, яка заповнить ці відсутні значення найближчим значенням. Ми хочемо створити стовпець під назвою users_nearest і призначити його стовпцю Users .
Ми хочемо створити стовпець під назвою user_nearest і призначити його стовпцю користувача. І тепер, коли цей стовпець ізольовано, ми можемо використовувати функцію та натиснути клавішу Shift-tab, щоб побачити, які параметри приймає ця функція. Існує багато різних типів методів.
Ви бачите, що за замовчуванням лінійний, і якщо ви хочете, щоб він бачив усі різні методи, у цьому є інформація. Ви можете відкрити це до кінця, і тут буде багато інформації, яка дасть вам багато розуміння. Але завжди краще зайти на сайт Pandas і просто подивитися, що таке різні типи інтерполяції.
Тепер ми передамо потрібний метод і використаємо метод найближчої інтерполяції. Все, що нам потрібно зробити, це запустити це, і ви побачите, що створено стовпець. Якщо ми подивимося на цей конкретний рядок, ми побачимо, що це відсутнє значення. І ви можете бачити, що його було інтерпольовано, де взято найближче значення, і додано його сюди. Як бачите, ми більше не маємо пропущених значень для цього конкретного рядка.
Тепер давайте скопіюємо це двічі та змінимо назву цих стовпців на user_linear і user_time . Ми також змінимо методи, щоб відповідати нашим заголовкам. Ми можемо зміщувати та вводити, і ви бачите, що ми створили три стовпці на основі різних типів методів інтерполяції.
Далі я хочу створити ще один окремий стовпець, який дозволить нам вказати, які з них порожні, як прапорець у наших даних. Для цього ми будемо використовувати Numpy.
Отже, ми просто створимо новий стовпець під назвою df , а потім назвемо його прапорець. Ми збираємося призначити це зі знаком рівності. Потім ми будемо використовувати np , яка є нашою змінною Numpy. А потім ми використаємо функцію where , яка є умовною функцією. Ми встановлюємо умову, а потім отримуємо приклад істини та хибності. Ми використовуємо подвійне дорівнює, яке є рівним у Python. Коли це правда, ми хочемо сказати «Відсутні дані» . Іншим варіантом буде Дані .
Ми можемо використовувати цей прапор у нашому візуалі. Коли ми опинимося у вашому блокноті, перейдіть до трансформації та натисніть «Запустити сценарій Python». Тепер є кілька різних кроків. Нам потрібно змусити це працювати в межахнавколишнє середовище.
У нас є всі наші коди, і нам потрібно додати ще кілька кроків. По-перше, коли ми маємо справу з датою-часом, нам потрібно додати параметр помилки, який говорить, якщо у нас є якісь помилки, ви можете примусово або спробувати змінити це. Отже, я збираюся поставити тут errors equal , а потім parenthesis coerce . Далі нам потрібно перепризначити змінну набору даних як df.
Коли ми натискаємо OKAY, ми отримуємо іншу помилку, і це те, що нам потрібно зробити, щоб виправити це. Якщо ми повторимо наші кроки, нам не потрібно форматувати дату. Ми дозволимо Python працювати з датами, оскільки дати унікальні для кожної платформи. Перше, що нам потрібно зробити, це позбутися Changed Type .
У нас немає стовпця Дата, оскільки дата є індексом. Отже, ми повертаємось до нашого сценарію Python, а потім просто скидаємо наш індекс df.reset_index . Ми кажемо, що хочемо скинути його до обходу стовпця Date у цій дужці, а потім хочемо зробити inplace = true .
І тепер у нас є дата, і всі інші типи даних готові.
Якщо ми представимо це у візуальному вигляді, то ось як це виглядає в трьох різних методах інтерполяції при обробці відсутніх даних у Python.
Висновок
У цьому підручнику ви ознайомилися з трьома методами інтерполяції для обробки відсутніх даних. Ми обговорили методи лінійної, найближчої та зваженої інтерполяції часу.
Сподіваюся, ви знайдете це корисним і застосуєте його у своїй роботі. Ви можете переглянути повний відеопосібник нижче, щоб отримати докладніші відомості, і ознайомитися з посиланнями нижче, щоб дізнатися більше про обробку відсутніх даних у Python.
Все найкраще!
Гаелім
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.
Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.
Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!
Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.
Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.
Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.
Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.
Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.
Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.