diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py new file mode 100644 index 0000000..f42eac9 --- /dev/null +++ b/src/ssb_konjunk/data_formating.py @@ -0,0 +1,29 @@ +"""Funsjoner for å gjøre data formartering.""" + +import pandas as pd + + +def bytte_koder( + df: pd.DataFrame, kode_dict: dict[str, str], kolonnenavn: str +) -> pd.DataFrame: + """Bytter koder. + + Funksjonen for å bytte kode i en kolonne. + + + Args: + df: Pandas dataramme som vi skal sende inn. + kode_dict: Ordbok med gammel og ny kode. + kolonnenavn: Navn på kolonnen som skal byttes ut. + + Returns: + Dataramme med ny kode. + + """ + df_func = df.copy() + + for old, new in kode_dict.items(): + + df_func.loc[df_func[kolonnenavn] == old, kolonnenavn] = str(new) + + return df_func diff --git a/tests/test_data_formating.py b/tests/test_data_formating.py new file mode 100644 index 0000000..65134ca --- /dev/null +++ b/tests/test_data_formating.py @@ -0,0 +1,22 @@ +import pandas as pd + +from ssb_konjunk.data_formating import bytte_koder + +"""Test av funksjon bytte_koder """ + + +def test_bytte_koder() -> None: + kode_dict = {"a": "1", "b": "2"} + + df = pd.DataFrame( + { + "bokstaver": ["a", "b"], + "tall": [1, 2], + } + ) + + df = bytte_koder(df, kode_dict, "bokstaver") + + assert df["bokstaver"].to_list() == ["1", "2"] + + assert df["tall"].to_list() == [1, 2]