mirror of
https://github.com/koodiklinikka/palkkakysely.git
synced 2026-03-19 17:06:06 +00:00
Update ingestion script for 2022
This commit is contained in:
@@ -6,18 +6,25 @@ import pandas as pd
|
|||||||
from pulkka.config import DATA_DIR
|
from pulkka.config import DATA_DIR
|
||||||
|
|
||||||
COLUMN_MAP = {
|
COLUMN_MAP = {
|
||||||
|
# 2021
|
||||||
"Missä kaupungissa työpaikkasi pääasiallinen toimisto sijaitsee?": "Kaupunki",
|
"Missä kaupungissa työpaikkasi pääasiallinen toimisto sijaitsee?": "Kaupunki",
|
||||||
"Työaika (jos työsuhteessa)": "Työaika",
|
"Työaika (jos työsuhteessa)": "Työaika",
|
||||||
"Etänä vai paikallisesti?": "Etä",
|
"Etänä vai paikallisesti?": "Etä",
|
||||||
"Vuositulot (sis. bonukset, osingot yms) / Vuosilaskutus (jos laskutat)": "Vuositulot",
|
"Vuositulot (sis. bonukset, osingot yms) / Vuosilaskutus (jos laskutat)": "Vuositulot",
|
||||||
"Kuukausipalkka (jos työntekijä) (brutto)": "Kuukausipalkka",
|
"Kuukausipalkka (jos työntekijä) (brutto)": "Kuukausipalkka",
|
||||||
"Onko palkkasi nykyroolissasi mielestäsi kilpailukykyinen?": "Kilpailukykyinen",
|
"Onko palkkasi nykyroolissasi mielestäsi kilpailukykyinen?": "Kilpailukykyinen",
|
||||||
|
# 2022
|
||||||
|
"Etänä vai lähityössä?": "Etä",
|
||||||
|
"Kuukausipalkka (brutto, euroina)": "Kuukausipalkka",
|
||||||
|
"Vuositulot (sis. bonukset, osingot yms, euroina)": "Vuositulot",
|
||||||
|
"Mitä palveluja tarjoat?": "Palvelut",
|
||||||
}
|
}
|
||||||
|
|
||||||
ETATYO_MAP = {
|
ETATYO_MAP = {
|
||||||
"Pääosin tai kokonaan etätyö": "Etä",
|
"Pääosin tai kokonaan etätyö": "Etä",
|
||||||
"Pääosin tai kokonaan toimistolla": "Toimisto",
|
"Pääosin tai kokonaan toimistolla": "Toimisto",
|
||||||
"Noin 50/50 hybridimalli": "50/50",
|
"Noin 50/50 hybridimalli": "50/50",
|
||||||
|
"Jotain siltä väliltä": "50/50",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -61,6 +68,12 @@ def map_ika(d):
|
|||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
def ucfirst(val):
|
||||||
|
if isinstance(val, str):
|
||||||
|
return val[0].upper() + val[1:]
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
def read_data() -> pd.DataFrame:
|
def read_data() -> pd.DataFrame:
|
||||||
df: pd.DataFrame = pd.read_excel(
|
df: pd.DataFrame = pd.read_excel(
|
||||||
DATA_DIR / "results.xlsx",
|
DATA_DIR / "results.xlsx",
|
||||||
@@ -87,8 +100,14 @@ def read_data() -> pd.DataFrame:
|
|||||||
# Remove Oy, Oyj, etc. from work places
|
# Remove Oy, Oyj, etc. from work places
|
||||||
df["Työpaikka"] = df["Työpaikka"].replace(re.compile(r"\s+oy|oyj$", flags=re.I), "")
|
df["Työpaikka"] = df["Työpaikka"].replace(re.compile(r"\s+oy|oyj$", flags=re.I), "")
|
||||||
|
|
||||||
|
# Normalize initial capitalization in Rooli and Palvelut
|
||||||
|
df["Rooli"] = df["Rooli"].apply(ucfirst)
|
||||||
|
df["Palvelut"] = df["Palvelut"].apply(ucfirst)
|
||||||
|
|
||||||
# Fill in Vuositulot as 12.5 * Kk-tulot if empty
|
# Fill in Vuositulot as 12.5 * Kk-tulot if empty
|
||||||
df["Vuositulot"] = df.apply(map_vuositulot, axis=1)
|
df["Vuositulot"] = df.apply(map_vuositulot, axis=1)
|
||||||
|
# Fudge a single known outlier
|
||||||
|
df.loc[df.Vuositulot == 912500, 'Vuositulot'] = 91250
|
||||||
|
|
||||||
# Synthesize kk-tulot from Vuositulot
|
# Synthesize kk-tulot from Vuositulot
|
||||||
df["Kk-tulot"] = pd.to_numeric(df["Vuositulot"], errors="coerce") / 12
|
df["Kk-tulot"] = pd.to_numeric(df["Vuositulot"], errors="coerce") / 12
|
||||||
|
|||||||
Reference in New Issue
Block a user