From a1266a586afa3eda4668b2e3a3ec9d823a34487d Mon Sep 17 00:00:00 2001 From: User-Boyd Date: Fri, 3 May 2024 09:52:36 +0200 Subject: [PATCH 1/6] lagt inn funksjon --- src/ssb_konjunk/data_formating.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/ssb_konjunk/data_formating.py diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py new file mode 100644 index 0000000..2583f06 --- /dev/null +++ b/src/ssb_konjunk/data_formating.py @@ -0,0 +1,26 @@ +""" Funsjoner for å gjøre data formartering""" +import pandas as pd + + +def bytte_koder(df:pd.DataFrame,kodeliste: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. + kodeliste: Ordbok med gammel og ny kode. + kolonnenavn: Navn på kolonnen som skal byttes ut. + + Returns: + Dataramme med ny kode. + + """ + + for old, new in kodeliste.items(): + + df.loc[df[kolonnenavn] == old, kolonnenavn] = str(new) + + return df + From b781ef08654fb24bded45bf908b634356730fcc9 Mon Sep 17 00:00:00 2001 From: User-Boyd Date: Fri, 3 May 2024 10:10:22 +0200 Subject: [PATCH 2/6] lagt in test for bytte_koder funk. --- tests/test_data_formating.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/test_data_formating.py diff --git a/tests/test_data_formating.py b/tests/test_data_formating.py new file mode 100644 index 0000000..c79c7ab --- /dev/null +++ b/tests/test_data_formating.py @@ -0,0 +1,28 @@ +from datetime import datetime + +import pytest +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] \ No newline at end of file From 16813d16630595ec2747b5e5a7d7184782dbdee0 Mon Sep 17 00:00:00 2001 From: EdvardGarmannslund Date: Fri, 3 May 2024 10:22:23 +0200 Subject: [PATCH 3/6] pre-commit format fiks --- src/ssb_konjunk/data_formating.py | 25 +++++++++++++------------ tests/test_data_formating.py | 24 +++++++++--------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py index 2583f06..4f380e6 100644 --- a/src/ssb_konjunk/data_formating.py +++ b/src/ssb_konjunk/data_formating.py @@ -1,26 +1,27 @@ -""" Funsjoner for å gjøre data formartering""" +"""Funsjoner for å gjøre data formartering""" + import pandas as pd -def bytte_koder(df:pd.DataFrame,kodeliste:dict[str,str],kolonnenavn:str) -> pd.DataFrame: +def bytte_koder( + df: pd.DataFrame, kodeliste: dict[str, str], kolonnenavn: str +) -> pd.DataFrame: """Bytter koder. - - Funksjonen for å bytte kode i en kolonne. - - + + Funksjonen for å bytte kode i en kolonne. + + Args: df: Pandas dataramme som vi skal sende inn. kodeliste: Ordbok med gammel og ny kode. kolonnenavn: Navn på kolonnen som skal byttes ut. - + Returns: Dataramme med ny kode. - + """ - for old, new in kodeliste.items(): - + df.loc[df[kolonnenavn] == old, kolonnenavn] = str(new) - - return df + return df diff --git a/tests/test_data_formating.py b/tests/test_data_formating.py index c79c7ab..65134ca 100644 --- a/tests/test_data_formating.py +++ b/tests/test_data_formating.py @@ -1,6 +1,3 @@ -from datetime import datetime - -import pytest import pandas as pd from ssb_konjunk.data_formating import bytte_koder @@ -9,20 +6,17 @@ def test_bytte_koder() -> None: - kode_dict = { - "a":"1", - "b":"2" - } - + kode_dict = {"a": "1", "b": "2"} + df = pd.DataFrame( { - "bokstaver":["a","b"], - "tall":[1,2], + "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] \ No newline at end of file + df = bytte_koder(df, kode_dict, "bokstaver") + + assert df["bokstaver"].to_list() == ["1", "2"] + + assert df["tall"].to_list() == [1, 2] From 0c335f6fb1386ec43223a63411487324de676be0 Mon Sep 17 00:00:00 2001 From: EdvardGarmannslund Date: Fri, 3 May 2024 10:23:38 +0200 Subject: [PATCH 4/6] LAgt inn punktum --- src/ssb_konjunk/data_formating.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py index 4f380e6..66aa353 100644 --- a/src/ssb_konjunk/data_formating.py +++ b/src/ssb_konjunk/data_formating.py @@ -1,4 +1,4 @@ -"""Funsjoner for å gjøre data formartering""" +"""Funsjoner for å gjøre data formartering.""" import pandas as pd From 74ebb7d9ac35e90825a0aa96bdf68f682f97989b Mon Sep 17 00:00:00 2001 From: EdvardGarmannslund Date: Fri, 3 May 2024 10:34:26 +0200 Subject: [PATCH 5/6] oppdatert funk saa pandas ikke overskriver klasse --- src/ssb_konjunk/data_formating.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py index 66aa353..8db7844 100644 --- a/src/ssb_konjunk/data_formating.py +++ b/src/ssb_konjunk/data_formating.py @@ -4,7 +4,7 @@ def bytte_koder( - df: pd.DataFrame, kodeliste: dict[str, str], kolonnenavn: str + df: pd.DataFrame, kode_dict: dict[str, str], kolonnenavn: str ) -> pd.DataFrame: """Bytter koder. @@ -13,15 +13,17 @@ def bytte_koder( Args: df: Pandas dataramme som vi skal sende inn. - kodeliste: Ordbok med gammel og ny kode. + kode_dict: Ordbok med gammel og ny kode. kolonnenavn: Navn på kolonnen som skal byttes ut. Returns: Dataramme med ny kode. """ - for old, new in kodeliste.items(): + df_func = df.copy() + + for old, new in kode_dict.items(): - df.loc[df[kolonnenavn] == old, kolonnenavn] = str(new) + df_func.loc[df_func[kolonnenavn] == old, kolonnenavn] = str(new) - return df + return df_func From e1cdb76927ef5031a57fb916a7d61ef9a34ec172 Mon Sep 17 00:00:00 2001 From: EdvardGarmannslund Date: Fri, 3 May 2024 10:37:27 +0200 Subject: [PATCH 6/6] trailing whitespace --- src/ssb_konjunk/data_formating.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ssb_konjunk/data_formating.py b/src/ssb_konjunk/data_formating.py index 8db7844..f42eac9 100644 --- a/src/ssb_konjunk/data_formating.py +++ b/src/ssb_konjunk/data_formating.py @@ -21,7 +21,7 @@ def bytte_koder( """ df_func = df.copy() - + for old, new in kode_dict.items(): df_func.loc[df_func[kolonnenavn] == old, kolonnenavn] = str(new)