if cat_vars:
df["static_cat"] = (
df.groupby("group_col")
.agg({i: "first" for i in cat_vars})
.values.tolist()
)
Error:
packages\pandas\core\groupby\generic.py in aggregate(self, func, *args, **kwargs)
926 func = _maybe_mangle_lambdas(func)
927
--> 928 result, how = self._aggregate(func, *args, **kwargs)
929 if how is None:
930 return result
packages\pandas\core\base.py in _aggregate(self, arg, *args, **kwargs)
355 obj.columns.intersection(keys)
356 ) != len(keys):
--> 357 raise SpecificationError("nested renamer is not supported")
358
359 from pandas.core.reshape.concat import concat
SpecificationError: nested renamer is not supported
A similar question is solved here.But I want it to be dynamic, i.e. depending on the elements in the cat_vars code should adapt.
for e.g.
if cat_vars=[var1,var2] I can pass agg(var1="first" ,var2="first"})
to solve the problem. but what if it has 3 vars?