Closed
Description
Pandas version checks
-
I have checked that this issue has not already been reported.
-
I have confirmed this bug exists on the latest version of pandas.
-
I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
df = pd.DataFrame({"a": [1, 2, 3], "b": 1, "c": "aaaa"})
df.groupby("a").mean(numeric_only=False)
raises
Traceback (most recent call last):
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1643, in array_func
result = self.grouper._cython_operation(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 806, in _cython_operation
return cy_op.cython_operation(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 531, in cython_operation
return self._cython_op_ndim_compat(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 335, in _cython_op_ndim_compat
return self._call_cython_op(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 392, in _call_cython_op
func = self._get_cython_function(self.kind, self.how, values.dtype, is_numeric)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 195, in _get_cython_function
raise NotImplementedError(
NotImplementedError: function is not implemented for this dtype: [how->mean,dtype->object]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 1675, in _ensure_numeric
x = float(x)
ValueError: could not convert string to float: 'aaaa'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 1679, in _ensure_numeric
x = complex(x)
ValueError: complex() arg is a malformed string
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/patrick/Library/Application Support/JetBrains/PyCharm2023.1/scratches/scratch.py", line 511, in <module>
df.groupby("a").mean(numeric_only=False)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1982, in mean
result = self._cython_agg_general(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1662, in _cython_agg_general
new_mgr = data.grouped_reduce(array_func)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/internals/managers.py", line 1497, in grouped_reduce
applied = sb.apply(func)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/internals/blocks.py", line 328, in apply
result = func(self.values, **kwargs)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1658, in array_func
result = self._agg_py_fallback(values, ndim=data.ndim, alt=alt)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1616, in _agg_py_fallback
res_values = self.grouper.agg_series(ser, alt, preserve_dtype=True)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 841, in agg_series
result = self._aggregate_series_pure_python(obj, func)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/ops.py", line 862, in _aggregate_series_pure_python
res = func(group)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/groupby/groupby.py", line 1984, in <lambda>
alt=lambda x: Series(x).mean(numeric_only=numeric_only),
File "/Users/patrick/PycharmProjects/pandas/pandas/core/series.py", line 5957, in mean
return NDFrame.mean(self, axis, skipna, numeric_only, **kwargs)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/generic.py", line 11435, in mean
return self._stat_function(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/generic.py", line 11392, in _stat_function
return self._reduce(
File "/Users/patrick/PycharmProjects/pandas/pandas/core/series.py", line 5865, in _reduce
return op(delegate, skipna=skipna, **kwds)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 148, in f
result = alt(values, axis=axis, skipna=skipna, **kwds)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 404, in new_func
result = func(values, axis=axis, skipna=skipna, mask=mask, **kwargs)
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 719, in nanmean
the_sum = _ensure_numeric(values.sum(axis, dtype=dtype_sum))
File "/Users/patrick/PycharmProjects/pandas/pandas/core/nanops.py", line 1682, in _ensure_numeric
raise TypeError(f"Could not convert {x} to numeric") from err
TypeError: Could not convert aaaa to numeric
Issue Description
I think we should raise a shorter traceback? The first part looks perfect, we should suppress the rest
This looks like a bug to me, not like the intended behaviour.
Expected Behavior
Raise a shorter traceback
Installed Versions
main