(
df,
grouper,
key,
func,
*args,
group_keys=GROUP_KEYS_DEFAULT,
dropna=None,
observed=None,
**kwargs,
)
| 123 | |
| 124 | |
| 125 | def _groupby_slice_transform( |
| 126 | df, |
| 127 | grouper, |
| 128 | key, |
| 129 | func, |
| 130 | *args, |
| 131 | group_keys=GROUP_KEYS_DEFAULT, |
| 132 | dropna=None, |
| 133 | observed=None, |
| 134 | **kwargs, |
| 135 | ): |
| 136 | # No need to use raise if unaligned here - this is only called after |
| 137 | # shuffling, which makes everything aligned already |
| 138 | dropna = {"dropna": dropna} if dropna is not None else {} |
| 139 | observed = {"observed": observed} if observed is not None else {} |
| 140 | g = df.groupby(grouper, group_keys=group_keys, **observed, **dropna) |
| 141 | if key: |
| 142 | g = g[key] |
| 143 | |
| 144 | # Cannot call transform on an empty dataframe |
| 145 | if len(df) == 0: |
| 146 | return g.apply(func, *args, **kwargs) |
| 147 | |
| 148 | return g.transform(func, *args, **kwargs) |
| 149 | |
| 150 | |
| 151 | def _groupby_slice_shift( |
no test coverage detected