From d71d0a188c906dac57463f0f5097a56f827730b2 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Mon, 25 Sep 2023 09:18:09 +0300 Subject: [PATCH] Improve column maps, drop duplicate row --- pulkka/column_maps.py | 28 ++++++++++++++++++---------- pulkka/data_ingest.py | 5 +++++ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/pulkka/column_maps.py b/pulkka/column_maps.py index 8360714..2b518a0 100644 --- a/pulkka/column_maps.py +++ b/pulkka/column_maps.py @@ -1,6 +1,5 @@ from __future__ import annotations -MISTA_ASIAKKAAT_COL = "Mistä asiakkaat ovat?" IKA_COL = "Ikä" KAUPUNKI_COL = "Kaupunki" KIKY_COL = "Onko palkkasi nykyroolissasi mielestäsi kilpailukykyinen?" @@ -8,23 +7,27 @@ KIKY_OTHER_COL = ( "Onko palkkasi nykyroolissasi mielestäsi kilpailukykyinen? (muut vastaukset)" ) KKPALKKA_COL = "Kuukausipalkka" +KK_TULOT_COL = "Kk-tulot (laskennallinen)" +KK_TULOT_NORM_COL = "Kk-tulot (laskennallinen, normalisoitu)" +LAHITYO_COL = "Kuinka suuren osan ajasta teet lähityönä toimistolla?" +LANG_COL = "Vastauskieli" +MILLAISESSA_COL = "Millaisessa yrityksessä työskentelet?" +MISTA_ASIAKKAAT_COL = "Mistä asiakkaat ovat?" +PALAUTE_COL = "Palaute" PALKANSAAJA_VAI_LASKUTTAJA_COL = "Palkansaaja vai laskuttaja" PALVELUT_COL = "Palvelut" ROOLI_COL = "Rooli" +ROOLI_NORM_COL = "Rooli (normalisoitu)" SIIRTYNYT_COL = ( "Oletko siirtynyt palkansaajasta laskuttajaksi tai päinvastoin 1.10.2022 jälkeen?" ) SUKUPUOLI_COL = "Sukupuoli" +TUNTILASKUTUS_ALV0_COL = "Tuntilaskutus (ALV 0%, euroina)" TYOAIKA_COL = "Työaika" TYOKOKEMUS_COL = "Työkokemus alalta (vuosina)" TYOPAIKKA_COL = "Työpaikka" +VUOSILASKUTUS_ALV0_COL = "Vuosilaskutus (ALV 0%, euroina)" VUOSITULOT_COL = "Vuositulot" -MILLAISESSA_COL = "Millaisessa yrityksessä työskentelet?" -LAHITYO_COL = "Kuinka suuren osan ajasta teet lähityönä toimistolla?" -LANG_COL = "Vastauskieli" -KK_TULOT_COL = "Kk-tulot (laskennallinen)" -KK_TULOT_NORM_COL = "Kk-tulot (laskennallinen, normalisoitu)" -ROOLI_NORM_COL = "Rooli (normalisoitu)" COLUMN_MAP_2023 = { "Timestamp": "Timestamp", @@ -37,8 +40,8 @@ COLUMN_MAP_2023 = { "Tulojen muutos viime vuodesta (%)": "Tulojen muutos viime vuodesta (%)", "Montako vuotta olet tehnyt laskuttavaa työtä alalla?": "Montako vuotta olet tehnyt laskuttavaa työtä alalla?", "Mitä palveluja tarjoat?": PALVELUT_COL, - "Tuntilaskutus (ALV 0%, euroina)": "Tuntilaskutus (ALV 0%, euroina)", - "Vuosilaskutus (ALV 0%, euroina)": "Vuosilaskutus (ALV 0%, euroina)", + "Tuntilaskutus (ALV 0%, euroina)": TUNTILASKUTUS_ALV0_COL, + "Vuosilaskutus (ALV 0%, euroina)": VUOSILASKUTUS_ALV0_COL, "Hankitko asiakkaasi itse suoraan vai käytätkö välitysfirmojen palveluita?": "Hankitko asiakkaasi itse suoraan vai käytätkö välitysfirmojen palveluita?", "Mistä asiakkaat ovat?": MISTA_ASIAKKAAT_COL, "Työpaikka": "Työpaikka", @@ -52,7 +55,7 @@ COLUMN_MAP_2023 = { "Vapaa kuvaus kokonaiskompensaatiomallista": "Vapaa kuvaus kokonaiskompensaatiomallista", "Onko palkkasi nykyroolissasi mielestäsi kilpailukykyinen?": KIKY_COL, "Vapaa sana": "Vapaa sana", - "Palautetta kyselystä ja ideoita ensi vuoden kyselyyn": "Palautetta kyselystä ja ideoita ensi vuoden kyselyyn", + "Palautetta kyselystä ja ideoita ensi vuoden kyselyyn": PALAUTE_COL, } COLUMN_MAP_2023_EN_TO_FI = { @@ -178,3 +181,8 @@ OTHER_GENDER_VALUES = { "muu/ei", "non-binary, afab", } + +TIMESTAMPS_TO_DROP = { + # See "SUBMITTED TWICE, SORRY!!" in English data: + "2023-09-08 13:24:46.740", +} diff --git a/pulkka/data_ingest.py b/pulkka/data_ingest.py index 104cfb9..d9647c9 100644 --- a/pulkka/data_ingest.py +++ b/pulkka/data_ingest.py @@ -33,6 +33,8 @@ from pulkka.column_maps import ( OTHER_GENDER_VALUES, TYOKOKEMUS_COL, ROOLI_NORM_COL, + PALAUTE_COL, + TIMESTAMPS_TO_DROP, ) @@ -139,6 +141,9 @@ def read_data() -> pd.DataFrame: # Drop bogus data df = df.drop(df[df[SUKUPUOLI_COL] == "taisteluhelikopteri"].index) + # Drop rows by timestamps known to be duplicate + df = df.drop(df[df["Timestamp"].isin(TIMESTAMPS_TO_DROP)].index) + df[SUKUPUOLI_COL] = df[SUKUPUOLI_COL].apply(map_sukupuoli).astype("category") df[IKA_COL] = df[IKA_COL].astype("category")