@@ -160,11 +160,12 @@ def named_aggs(
160160 self , group_by : PandasLikeGroupBy , /
161161 ) -> Iterator [tuple [str , _NamedAgg ]]:
162162 aliases = collect (group_by ._aliases_str (self .aliases ))
163+ output_names = collect (group_by ._aliases_str (self .output_names ))
163164 native_agg = self .native_agg ()
164165 if self .is_len () and self .is_anonymous ():
165166 yield aliases [0 ], (group_by ._anonymous_column_name , native_agg )
166167 return
167- for output_name , alias in zip (self . output_names , aliases ):
168+ for output_name , alias in zip (output_names , aliases ):
168169 yield alias , (output_name , native_agg )
169170
170171 def _cast_coerced (self , group_by : PandasLikeGroupBy , / ) -> Iterator [PandasLikeExpr ]:
@@ -251,13 +252,10 @@ def __init__(
251252 ) -> None :
252253 self ._original_columns = tuple (df .columns )
253254 self ._drop_null_keys = drop_null_keys
254- ns = df .__narwhals_namespace__ ()
255255 frame , self ._keys , self ._output_key_names = self ._parse_keys (df , keys = keys )
256256 self ._exclude : tuple [str , ...] = (* self ._keys , * self ._output_key_names )
257257 self ._remap_non_str_columns = _remap_non_str (self )
258- self ._compliant_frame = frame .with_columns (
259- * (ns .col (old ).alias (new ) for old , new in self ._remap_non_str_columns .items ())
260- )
258+ self ._compliant_frame = frame .rename (self ._remap_non_str_columns )
261259 # Drop index to avoid potential collisions:
262260 # https://github.com/narwhals-dev/narwhals/issues/1907.
263261 native = self .compliant .native
0 commit comments