From 36478ffcc9b5a69ccfcda89dd55362372a14c625 Mon Sep 17 00:00:00 2001 From: Sandyawan Date: Sat, 8 Jun 2024 16:00:13 +0700 Subject: [PATCH] add turth to dynamic table --- stadata/main.py | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/stadata/main.py b/stadata/main.py index e783e46..dfa424b 100644 --- a/stadata/main.py +++ b/stadata/main.py @@ -59,9 +59,15 @@ def __get_list( """ if model == "data": if th != "": - url_th = "/th/" f"{th}" + url_th = f"/th/{th}" else: url_th = "" + + if turth != "": + url_turth = f"/turth/{turth}" + else: + url_turth = "" + res = requests.get( f"{BASE_URL}api/list/model/" f"{model}/perpage/100000/lang/" @@ -72,6 +78,7 @@ def __get_list( f"{str(page)}/var/" f"{str(var)}" f"{url_th}" + f"{url_turth}" ) elif (model == "pressrelease") | (model == "publication"): res = requests.get( @@ -208,7 +215,7 @@ def __get_pressRelease(self, domain="0000", year="", month="", keyword=""): domain=domain, model="pressrelease", keyword=keyword, year=year, month=month ) if res["data"] == "": - print(res) + # print(res) return df for item in res["data"][1]: df = pd.concat( @@ -633,25 +640,38 @@ def view_dynamictable(self, domain, var, th=""): ) datacontent = datacontent.sort_values("key", ignore_index=True) - + vervar = pd.DataFrame( list(map(lambda x: [x["val"], x["label"]], res["vervar"])), columns=["id_var", "variable"], ) + vervar = vervar.sort_values("id_var", ignore_index=True) turvar = pd.DataFrame( list(map(lambda x: [x["val"], x["label"]], res["turvar"])), columns=["id_tur_var", "turunan variable"], ) + turvar = turvar.sort_values("id_tur_var", ignore_index=True) result = vervar.merge(turvar, how="cross") + + turtahun = None + + if("turtahun" in res): + turtahun = pd.DataFrame( + list(map(lambda x: [x["val"], x["label"]], res["turtahun"])), + columns=["id_tur_th", "turunan tahun"], + ) + turtahun = turtahun.sort_values("id_tur_th", ignore_index=True) + result = result.merge(turtahun, how="cross") tahun = pd.DataFrame( list(map(lambda x: [x["val"], x["label"]], res["tahun"])), columns=["val", "label"], ) + tahun = tahun.sort_values("val", ignore_index=True) for index, row in tahun.iterrows(): @@ -660,10 +680,11 @@ def view_dynamictable(self, domain, var, th=""): cell = datacontent.loc[ datacontent["key"].str.match( "^" - + str(result.loc[index_result, "id_var"]) - + str(var) - + str(result.loc[index_result, "id_tur_var"]) - + str(row["val"]) + + str(result.loc[index_result, "id_var"]) #ID vertical variable + + str(var) #ID variable + + str(result.loc[index_result, "id_tur_var"]) #ID turunan varibale + + str(row["val"]) #ID tahun + + (str(result.loc[index_result, "id_tur_th"]) if (type(turtahun)!= None) else '') ), "value", ]