Source code for pqg.group_by_aggregation
import typing as t
from dataclasses import dataclass
from .operation import Operation
[docs]
@dataclass
class GroupByAggregation(Operation):
group_by_columns: t.List[str]
agg_function: str
[docs]
def apply(self, entity: str) -> str:
group_cols = ', '.join(f"'{col}'" for col in self.group_by_columns)
numeric_only = 'numeric_only=True' if self.agg_function != 'count' else ''
formatted_option = f', {numeric_only}' if numeric_only else ''
return f".groupby(by=[{group_cols}]).agg('{self.agg_function}'{formatted_option})"