From afffa95df1d7b063dd55103df430c7a26b691f0b Mon Sep 17 00:00:00 2001 From: TerenceLiu Date: Thu, 27 Jan 2022 12:00:23 +0800 Subject: [PATCH] rename economic and add EPU --- .vscode/settings.json | 3 + CEDA/{macroecon => economic}/BOJData.py | 0 CEDA/{macroecon => economic}/ECBData.py | 0 CEDA/economic/EPU.py | 83 ++++++++++++++++++++ CEDA/{macroecon => economic}/EurostatData.py | 0 CEDA/{macroecon => economic}/FredData.py | 0 CEDA/{macroecon => economic}/OECD.py | 0 CEDA/{macroecon => economic}/__init__.py | 0 CEDA/{macroecon => economic}/cn.py | 0 9 files changed, 86 insertions(+) create mode 100644 .vscode/settings.json rename CEDA/{macroecon => economic}/BOJData.py (100%) rename CEDA/{macroecon => economic}/ECBData.py (100%) create mode 100644 CEDA/economic/EPU.py rename CEDA/{macroecon => economic}/EurostatData.py (100%) rename CEDA/{macroecon => economic}/FredData.py (100%) rename CEDA/{macroecon => economic}/OECD.py (100%) rename CEDA/{macroecon => economic}/__init__.py (100%) rename CEDA/{macroecon => economic}/cn.py (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2b7e46d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.formatting.provider": "yapf" +} \ No newline at end of file diff --git a/CEDA/macroecon/BOJData.py b/CEDA/economic/BOJData.py similarity index 100% rename from CEDA/macroecon/BOJData.py rename to CEDA/economic/BOJData.py diff --git a/CEDA/macroecon/ECBData.py b/CEDA/economic/ECBData.py similarity index 100% rename from CEDA/macroecon/ECBData.py rename to CEDA/economic/ECBData.py diff --git a/CEDA/economic/EPU.py b/CEDA/economic/EPU.py new file mode 100644 index 0000000..3a220d2 --- /dev/null +++ b/CEDA/economic/EPU.py @@ -0,0 +1,83 @@ +from lxml import html +import requests +import pandas as pd + +url = { + "EPU-China": "https://economicpolicyuncertaintyinchina.weebly.com", + "EPU-HKSAR": "https://economicpolicyuncertaintyinchina.weebly.com/epu-in-hong-kong.html", + "EPU-MACAUSAR": "https://economicpolicyuncertaintyinchina.weebly.com/epu-in-macao.html", + "EPU": "https://www.policyuncertainty.com/" +} + + +class EPUData(object): + def __init__(self, country:str=None): + self.country = country + + def country_list(self): + country_list = ["Global", "USA", "Australia", "Belgium", + "Brazil", "Canada", "Chile", "China", + "Colombia", "Croatia", "Denmark", "France", + "Germany", "Greece", "HKSAR", "MACAUSAR", + "India", "Ireland", "Italy", "Japan", + "Korea", "Mexico", "Netherlands", "Pakistan", + "Russia", "Singapore", "Spain", "Sweden", "UK"] + annotations = "Disambiguation: the word 'Korea' in here stands for 'South Korea'" + return country_list, annotations + + def download(self): + if self.country == "China": + r = requests.get(url["EPU-China"]) + webpage = html.fromstring(r.content) + urls = pd.Series(webpage.xpath("//a/@href")) + urls_data = urls[urls.str.contains("xlsx")] + urls_cite = urls[urls.str.contains("pdf")] + urls_data = [url["EPU-China"] + i for i in urls_data] + urls_cite = [url["EPU-China"] + i for i in urls_cite] + output_data = [] + for i in range(0, len(urls_data)): + output_data.append(pd.read_excel(urls_data[i])) + + return {"data":output_data, "reference":urls_cite} + + elif self.country == "HKSAR": + r = requests.get(url["EPU-HKSAR"]) + webpage = html.fromstring(r.content) + urls = pd.Series(webpage.xpath("//a/@href")) + urls_data = urls[urls.str.contains("xlsx")] + urls_cite = urls[urls.str.contains("pdf")] + urls_data = [url["EPU-China"] + i for i in urls_data] + urls_cite = [url["EPU-China"] + i for i in urls_cite] + output_data = [] + for i in range(0, len(urls_data)): + output_data.append(pd.read_excel(urls_data[i])) + + return {"data":output_data, "reference":urls_cite} + + elif self.country == "MACAUSAR": + r = requests.get(url["EPU-MACAUSAR"]) + webpage = html.fromstring(r.content) + urls = pd.Series(webpage.xpath("//a/@href")) + urls_data = urls[urls.str.contains("xlsx")] + urls_cite = urls[urls.str.contains("pdf")] + urls_data = [url["EPU-China"] + i for i in urls_data] + urls_cite = [url["EPU-China"] + i for i in urls_cite] + output_data = [] + for i in range(0, len(urls_data)): + output_data.append(pd.read_excel(urls_data[i])) + + return {"data":output_data, "reference":urls_cite} + + else: + r = requests.get(url["EPU"] + self.country.lower() + "_monthly.html") + webpage = html.fromstring(r.content) + urls = pd.Series(webpage.xpath("//a/@href")) + urls_data = urls[urls.str.contains("xlsx")] + urls_cite = urls[urls.str.contains("pdf")] + urls_data = [url["EPU"] + i for i in urls_data] + urls_cite = [url["EPU"] + i for i in urls_cite] + output_data = [] + for i in range(0, len(urls_data)): + output_data.append(pd.read_excel(urls_data[i])) + + return {"data":output_data, "reference":urls_cite} diff --git a/CEDA/macroecon/EurostatData.py b/CEDA/economic/EurostatData.py similarity index 100% rename from CEDA/macroecon/EurostatData.py rename to CEDA/economic/EurostatData.py diff --git a/CEDA/macroecon/FredData.py b/CEDA/economic/FredData.py similarity index 100% rename from CEDA/macroecon/FredData.py rename to CEDA/economic/FredData.py diff --git a/CEDA/macroecon/OECD.py b/CEDA/economic/OECD.py similarity index 100% rename from CEDA/macroecon/OECD.py rename to CEDA/economic/OECD.py diff --git a/CEDA/macroecon/__init__.py b/CEDA/economic/__init__.py similarity index 100% rename from CEDA/macroecon/__init__.py rename to CEDA/economic/__init__.py diff --git a/CEDA/macroecon/cn.py b/CEDA/economic/cn.py similarity index 100% rename from CEDA/macroecon/cn.py rename to CEDA/economic/cn.py