MCPcopy
hub / github.com/pandas-dev/pandas / _insert_inaxis_grouper

Method _insert_inaxis_grouper

pandas/core/groupby/groupby.py:1245–1283  ·  view source on GitHub ↗
(
        self, result: Series | DataFrame, qs: npt.NDArray[np.float64] | None = None
    )

Source from the content-addressed store, hash-verified

1243
1244 @final
1245 def _insert_inaxis_grouper(
1246 self, result: Series | DataFrame, qs: npt.NDArray[np.float64] | None = None
1247 ) -> DataFrame:
1248 if isinstance(result, Series):
1249 result = result.to_frame()
1250
1251 n_groupings = len(self._grouper.groupings)
1252
1253 if qs is not None:
1254 result.insert(
1255 0, f"level_{n_groupings}", np.tile(qs, len(result) // len(qs))
1256 )
1257
1258 # zip in reverse so we can always insert at loc 0
1259 for level, (name, lev) in enumerate(
1260 zip(
1261 reversed(self._grouper.names),
1262 self._grouper.get_group_levels(),
1263 strict=True,
1264 )
1265 ):
1266 if name is None:
1267 # Behave the same as .reset_index() when a level is unnamed
1268 name = (
1269 "index"
1270 if n_groupings == 1 and qs is None
1271 else f"level_{n_groupings - level - 1}"
1272 )
1273
1274 # GH #28549
1275 # When using .apply(-), name will be in columns already
1276 if name not in result.columns:
1277 # if in_axis:
1278 if qs is None:
1279 result.insert(0, name, lev)
1280 else:
1281 result.insert(0, name, Index(np.repeat(lev, len(qs)), copy=False))
1282
1283 return result
1284
1285 @final
1286 def _wrap_aggregated_output(

Callers 9

_aggregate_with_numbaMethod · 0.95
describeMethod · 0.95
_wrap_applied_outputMethod · 0.80
nuniqueMethod · 0.80
aggregateMethod · 0.80
_wrap_applied_outputMethod · 0.80

Calls 5

IndexClass · 0.85
get_group_levelsMethod · 0.80
to_frameMethod · 0.45
insertMethod · 0.45
repeatMethod · 0.45

Tested by

no test coverage detected