Skip to content

Commit bfdbebe

Browse files
jbrockmendelTomAugspurger
authored andcommitted
CLN: catch less inside try/except (#28203)
* CLN: catch less inside try/except
1 parent 621ad9d commit bfdbebe

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

pandas/_libs/reduction.pyx

-4
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,6 @@ cdef class SeriesBinGrouper:
296296
islider.advance(group_size)
297297
vslider.advance(group_size)
298298

299-
except:
300-
raise
301299
finally:
302300
# so we don't free the wrong memory
303301
islider.reset()
@@ -425,8 +423,6 @@ cdef class SeriesGrouper:
425423

426424
group_size = 0
427425

428-
except:
429-
raise
430426
finally:
431427
# so we don't free the wrong memory
432428
islider.reset()

pandas/core/groupby/generic.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -242,15 +242,18 @@ def aggregate(self, func, *args, **kwargs):
242242
# grouper specific aggregations
243243
if self.grouper.nkeys > 1:
244244
return self._python_agg_general(func, *args, **kwargs)
245+
elif args or kwargs:
246+
result = self._aggregate_generic(func, *args, **kwargs)
245247
else:
246248

247249
# try to treat as if we are passing a list
248250
try:
249-
assert not args and not kwargs
250251
result = self._aggregate_multiple_funcs(
251252
[func], _level=_level, _axis=self.axis
252253
)
253-
254+
except Exception:
255+
result = self._aggregate_generic(func)
256+
else:
254257
result.columns = Index(
255258
result.columns.levels[0], name=self._selected_obj.columns.name
256259
)
@@ -260,8 +263,6 @@ def aggregate(self, func, *args, **kwargs):
260263
# values. concat no longer converts DataFrame[Sparse]
261264
# to SparseDataFrame, so we do it here.
262265
result = SparseDataFrame(result._data)
263-
except Exception:
264-
result = self._aggregate_generic(func, *args, **kwargs)
265266

266267
if not self.as_index:
267268
self._insert_inaxis_grouper_inplace(result)
@@ -313,10 +314,10 @@ def _aggregate_item_by_item(self, func, *args, **kwargs):
313314
cannot_agg = []
314315
errors = None
315316
for item in obj:
316-
try:
317-
data = obj[item]
318-
colg = SeriesGroupBy(data, selection=item, grouper=self.grouper)
317+
data = obj[item]
318+
colg = SeriesGroupBy(data, selection=item, grouper=self.grouper)
319319

320+
try:
320321
cast = self._transform_should_cast(func)
321322

322323
result[item] = colg.aggregate(func, *args, **kwargs)
@@ -684,7 +685,7 @@ def _transform_item_by_item(self, obj, wrapper):
684685

685686
return DataFrame(output, index=obj.index, columns=columns)
686687

687-
def filter(self, func, dropna=True, *args, **kwargs): # noqa
688+
def filter(self, func, dropna=True, *args, **kwargs):
688689
"""
689690
Return a copy of a DataFrame excluding elements from groups that
690691
do not satisfy the boolean criterion specified by func.

pandas/core/groupby/groupby.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,8 @@ def curried(x):
653653
# mark this column as an error
654654
try:
655655
return self._aggregate_item_by_item(name, *args, **kwargs)
656-
except (AttributeError):
656+
except AttributeError:
657+
# e.g. SparseArray has no flags attr
657658
raise ValueError
658659

659660
return wrapper

0 commit comments

Comments
 (0)