def processMultiCountryFile(config): us.log(config) xlFile = getXLFile(config) multiIndex = excelToMultiIndex(xlFile, header=[1,2]) cols = getTopCols(multiIndex) gen1Path = gen_1_dir + config["path"] us.mkdirs(gen1Path) prefix = us.format_lower_no_spaces(config["descriptor"]) countryMap = {} for country in cols: lcountry = us.format_lower_no_spaces(country) us.log(country) if config["timeseries"]: try: (monthly, yearly, meta) = getTimeseriesDataSet(multiIndex, country, config) if len(monthly.index) and len(yearly.index) == 0: yearly = build_annual_from_monthly(monthly, country) countryMap[lcountry] = (monthly, yearly, meta) if len(yearly.index): writeGen1XLS(yearly, meta, gen1Path, lcountry, prefix, "annual") if len(monthly.index): writeGen1XLS(monthly, meta, gen1Path, lcountry, prefix, "monthly") except ValueError: print("********************** Unable to convert data for " + country) continue else: (data, meta) = getDataSet(multiIndex, country, config) countryMap[lcountry] = (data, meta) writeGen1XLS(data, meta, gen1Path, lcountry, prefix) return countryMap
def writeGen2CSV(data, meta, gen2Path, setName, prefix, suffix=""): data = data.rename(columns=lambda x: us.format_lower_no_spaces(x)) saveAsCSV(data, gen2Path, setName, prefix, suffix) meta["Field"] = meta.index.map(us.format_lower_no_spaces) meta["English"] = meta.index cols = meta.columns.tolist() cols = cols[-2:] + cols[:-2] meta = meta[cols] meta = meta.rename(columns=lambda x: us.format_lower_no_spaces(x)) sufx = "meta" if suffix: sufx = suffix + "_meta" saveAsCSV(meta, gen2Path, setName, prefix, sufx)