def generic(self, args, kws): assert not kws df, values, index, columns, aggfunc, _pivot_values = args if not (isinstance(values, types.StringLiteral) and isinstance(index, types.StringLiteral) and isinstance(columns, types.StringLiteral)): raise ValueError("pivot_table() only support string constants for" "'values', 'index' and 'columns' arguments") values = values.literal_value index = index.literal_value columns = columns.literal_value # get output data type data = df.data[df.columns.index(values)] func = get_agg_func(None, aggfunc.literal_value, None) f_ir = numba.ir_utils.get_ir_of_code( { 'np': np, 'numba': numba, 'hpat': hpat }, func.__code__) _, out_dtype, _ = numba.typed_passes.type_inference_stage( self.context, f_ir, (data, ), None) out_arr_typ = _get_series_array_type(out_dtype) pivot_vals = _pivot_values.meta n_vals = len(pivot_vals) out_df = DataFrameType((out_arr_typ, ) * n_vals, None, tuple(pivot_vals)) return signature(out_df, *args)
def resolve_std(self, grp, args, kws): func = get_agg_func(None, 'std', None) return self._get_agg_typ(grp, args, func.__code__)