df_aggregate = {
let continentGroups = z.groupBy(r => r.Continent_Name, df_join)
let continents = Object.values(continentGroups)
let df = []
for (let c in continents){
let c_data = continents[c]
let c_df = [{"Continent_Name": continents[c], "Continent_Code": c_data[0].Continent_Code}]
let inflow = 0
let outflow = 0
let stock = 0
for (let i = 0; i++; i<c_data.length){
inflow += z.unique(z.getCol("Inflows of foreign population by nationality", c_data[i]))
outflow += z.unique(z.getCol("Outflows of foreign population by nationality", c_data[i]))
stock += z.unique(z.getCol("Stock of foreign-born population by country of birth", c_data[i]))
}
if (inflow > 0){
c_df = z.addCol("Inflows of foreign population by nationality", [inflow[0].sum] , c_df)
}
if (outflow > 0){
c_df = z.addCol("Outflows of foreign population by nationality", [outflow[0].sum] , c_df)
}
if (stock > 0){
c_df = z.addCol("Stock of foreign-born population by country of birth", [stock[0].sum] , c_df)
}
df = z.concat(df, c_df)
}
return df
}