Customizing aggregating functions with *args and **kwargs

When writing your own user-defined customized aggregation function, pandas implicitly passes it each of the aggregating columns one at a time as a Series. Occasionally, you will need to pass more arguments to your function than just the Series itself. To do so, you need to be aware of Python's ability to pass an arbitrary number of arguments to functions. Let's take a look at the signature of the groupby object's agg method with help from the inspect module:

>>> college = pd.read_csv('data/college.csv')
>>> grouped = college.groupby(['STABBR', 'RELAFFIL'])

>>> import inspect
>>> inspect.signature(grouped.agg)
<Signature (arg, *args, **kwargs)>

The argument *args allow you to pass an arbitrary number of non-keyword arguments to your customized aggregation function. Similarly, **kwargs allows you to pass an arbitrary number of keyword arguments.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset