Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Az interpoláció adott pontok közötti pontok generálására szolgáló módszer. Ebben az oktatóanyagban bemutatom, hogyan használhatja az interpolációt a hiányzó adatok kezelésére a Pythonban. Az oktatóanyag teljes videóját a blog alján tekintheti meg.

A Pythonban az interpoláció egy olyan technika, amelyet többnyire az adatkeretben vagy -sorozatban hiányzó értékek beszámítására használnak az adatok előfeldolgozása során. Bemutatom, hogyan használhatja ezt a módszert az adatok hiányzó adatpontjainak becslésére a LuckyTemplates használatával.

Ha megnézzük az eredeti adatainkat itt, amelyek a felső grafikonon vannak ábrázolva, láthatjuk, hogy sok lyuk vagy hiányzó adat van, amelyeket nem tudunk grafikonon ábrázolni, mert nincs ott semmi. De az alsó grafikonon láthatjuk, hogy elvégeztünk néhány becslést, hogy kitaláljuk, hogyan nézhetnek ki ezek az adatok. A tényleges adatok világoskék, míg az interpolált adatok sötétkék színűek.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Néhány különböző típusú becslést fogunk végezni. El fogunk végezni egy lineáris interpolációt, egy legközelebbi interpolációt, majd egy súlyozott időinterpolációt. Ezek mindegyike némileg eltérő eredményt ad nekünk.

A fenti példa a súlyozott időinterpolációt használja, amely szinte ugyanúgy néz ki, mint a lineáris interpoláció, azzal az eltéréssel, hogy a súlyozás a napok alapján történik. A lineáris a két adatpont közötti meredekség alapján becsülte meg az adatokat. A Nearest Interpolation laposabb becslési típussal rendelkezik, amint az alább látható, ahol a legközelebbi értéket néztük, és meg tudtuk becsülni, hogy mi van a kettő között.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Tehát ugorjunk át egy Jupyter notebookhoz, és hozzuk be.

Tartalomjegyzék

Hogyan használjuk az interpolációt a hiányzó adatok kezelésében a Pythonban

A Script Editor segítségével mindent kiírhat, de ez egyszerűbb. Több visszajelzést kap a Jupyter notebookban. Tehát dokumentáljuk, amit csinálunk. Amikor ezt átmásoljuk és beillesztjük a Python Script Editorba, nagyon tiszta és világos lesz.

Importáljuk a kívánt könyvtárakat, és importáljuk a Pandákat , és mentsük őket változó PD-ként. Importáljuk a Numpy-t és mentjük NP változóként. A Pandas egy adatmanipulációs könyvtár, míg a Numpy lehetővé teszi az adatok manipulálását is, és ad némi lineáris algebrát.

Be akarjuk vinni az adatkészletünket, és elmentjük df változóként . És csak a Pandas változót ( pd ) és a read.csv függvényt fogjuk használni . Ezután kimásoljuk és beillesztjük a fájl helyét a számítógépünkön. Az enyém a munkakönyvtáramban van, így csak a machines.csv fájlt kell megírnom , és ezt zárójelbe kell foglalnom.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

És nézzük meg az adatkészletünket a df változó használatával. Látható, hogy ez 2022 1-jétől egészen 25-ig tart. Egymást követő napok egészen 15-ig, aztán négy nap hiányzik 19-én, majd három nap hiányzik, amikor 22-ig érünk, és két nap hiányzik 25-én.

A kihagyott napokról nem hiányoznak az adatok. Ez nem adat az adatkészletünkben. Azzal fogunk foglalkozni, hogy hiányoznak az adatok, amelyeket ezekkel a NaN- értékekkel vagy azok nélkül jelenítenek meg.

Most, hogy megvan az adatkészletünk, használjuk a különböző típusú értelmezéseinket, és mentsük el őket különböző oszlopokként. Láthatjuk, hogy van objektumunk , amelyet egy szöveg reprezentál, és van egy float is.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

A Dátum oszlopot zárójeles jelöléssel fogom elkülöníteni . Ezután egyenlőt fogok használni ennek hozzárendeléséhez. A pd változót fogom használni , majd csak a to_datetime függvényt. Ezután bezárom ezt a függvényt a zárójellel, és hozzáadom a Dátum oszlophoz.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Láthatjuk, hogy most a dátum a megfelelő adattípus.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Itt van egy indexünk, amelyet az 1-től 18-ig terjedő számok jelölnek. Amikor a Lineárist választjuk, akkor ezekkel a számokkal hoz létre lineáris kapcsolatot a meglévő adatpontok között. De azt is szeretnénk, hogy az idővel súlyozott interpolációt is használhassuk, amely az időt nézi, és a tényleges napok alapján adja meg az eredményeket. A Dátum oszlopot szeretnénk indexként beállítani, így tudjuk hasznosítani.

Az adatkeret (df) változómat fogom használni, és megteszem a set_indexet. Át kell adnunk egy inplace nevű paramétert , hogy megbizonyosodjunk arról, hogy véglegesen be van adva. Tehát az inplace egyenlő értéket fogom használni, majd megnyomom a shift és az enter billentyűt. És ezzel láthatja, hogy a numerikus index eltűnt, és van egy Datetime indexünk.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Most elkezdhetjük a kívánt oszlopok építését. Építsünk egy oszlopot, ahol a legközelebbi adatpontot interpoláljuk, ami ezeket a hiányzó értékeket a legközelebbi értékkel tölti ki. Létre akarunk hozni egy user_nearest nevű oszlopot , és hozzá akarjuk rendelni egy Users oszlophoz.

Létre akarunk hozni egy user_nearest nevű oszlopot , és hozzá akarjuk rendelni egy felhasználói oszlophoz. És most, hogy ezt az oszlopot elkülönítettük, használhatjuk a függvényt, és megnyomhatjuk a shift-tab billentyűket, hogy megnézzük, milyen paramétereket vesz fel ez a függvény. Sokféle módszer létezik.

Láthatja, hogy az alapértelmezett lineáris, és ha azt szeretné, hogy az összes különböző metódust lássa, ezen belül vannak információk. Ezt egészen felfelé nyithatja, és sok információ található itt, amelyek sok betekintést nyújtanak. De mindig jobb, ha lemegy a Pandas oldalára, és megnézi, hogy mi a különböző típusú interpoláció.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Most a kívánt módszert fogjuk átadni, és a legközelebbi interpoláció módszerét fogjuk használni. Csak ezt kell futtatnunk, és láthatjuk, hogy létrejön egy oszlop. Ha megnézzük az adott sort, láthatjuk, hogy ez hiányzó érték. És láthatja, hogy interpolálva lett, ahol a legközelebbi értéket vették, és hozzáadták ide. Amint látja, az adott sorhoz már nem hiányoznak az értékek.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Most másoljuk át ezt kétszer, és változtassuk meg ezen oszlopok nevét user_linear és user_time értékre . A módszereket is módosítjuk, hogy megfeleljenek a címsorainknak. Eltolódhatunk és beléphetünk, és láthatjuk, hogy három oszlopot hoztunk létre különböző típusú interpolációs módszerek alapján.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Ezután szeretnék létrehozni egy további oszlopot, amely lehetővé teszi számunkra, hogy jelezzük, ezek közül melyek üresek, mint egy zászló az adatainkban. Ehhez a Numpy-t fogjuk használni.

Tehát csak létrehozunk egy új oszlopot df néven , majd zászlónak nevezzük. Ezt az egyenlőségjellel fogjuk hozzárendelni. Ezután az np-t fogjuk használni , ami a Numpy változónk. Ezután a where függvényt fogjuk használni , ami egy feltételes függvény. Felállítjuk a feltételt, majd példát kapunk igazra és hamisra. Dupla egyenlőt használunk, ami Pythonban egyenlő. Ha ez igaz, akkor azt akarjuk mondani, hogy hiányzó adatok . A másik lehetőség az Adatok lesz .

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Ezt a zászlót használhatjuk a vizualitásunkban. Ha már a jegyzetfüzetében vagyunk, lépjen át az átalakításhoz, és nyomja meg a Python script futtatása gombot. Most van néhány különböző lépés. El kell érnünk, hogy ez működjön belülkörnyezet.

Itt van minden kódunk, és hozzá kell adnunk néhány további lépést. Az egyik, amikor a dátum-idővel foglalkozunk, hozzá kell adnunk egy hibaparamétert, amely azt mondja, hogy ha hibánk van, akkor kényszerítheti vagy megkísérelheti megváltoztatni. Tehát ide teszem az egyenlő hibákat , majd a zárójeles kényszert . Ezután újra hozzá kell rendelnünk az adatkészlet-változót df-ként.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Amikor rákattintunk az OKAY gombra, újabb hibaüzenetet kapunk, és ezt kell tennünk a probléma kijavításához. Ha túllépünk a lépéseinken, nem kell dátumot formáznunk. Hagyjuk, hogy a Python dolgozzon a dátumokkal, mert a dátumok minden platformon egyediek. Az első dolog, amit meg kell tennünk, hogy megszabaduljunk a Changed Type- től .

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Nincs Dátum oszlopunk, mert a dátum az index. Tehát visszatérünk a Python-szkriptünkhöz, majd csak visszaállítjuk az indexünket, a df.reset_index . Azt mondjuk, hogy vissza akarjuk állítani a Dátum oszlop megkerülésére ebben a zárójelben, majd meg akarjuk tenni az inplace = true .

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

És most megvan a dátum, és az összes többi adattípusunk elkészült.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel

Ha ezt egy vizualizációba helyezzük, három különböző interpolációs módszerben így néz ki a hiányzó adatok Pythonban történő kezelésében.

Hiányzó adatok kezelése Pythonban interpolációs módszerrel




Következtetés

Ebben az oktatóanyagban három interpolációs módszert tanult meg a hiányzó adatok kezelésében. Megvitattuk a lineáris, a legközelebbi és a súlyozott időinterpolációs módszereket.

Remélem, hasznosnak találja ezt, és alkalmazza saját munkájában. További részletekért megtekintheti az alábbi teljes oktatóvideót, a hiányzó adatok Pythonban való kezelésével kapcsolatos további kapcsolódó tartalmakért pedig az alábbi hivatkozásokat.

Minden jót!

Gaelim


Mi az a Power Query & M Language: Részletes áttekintés

Mi az a Power Query & M Language: Részletes áttekintés

Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.

A SharePoint automatizálási szolgáltatás | Bevezetés

A SharePoint automatizálási szolgáltatás | Bevezetés

Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.

LuckyTemplates lejtődiagram: Áttekintés

LuckyTemplates lejtődiagram: Áttekintés

Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.

LuckyTemplates színes témák az egységes vizualizációkhoz

LuckyTemplates színes témák az egységes vizualizációkhoz

Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.