Skip to content

report.grouped_distributions - TypError #14

Description

@AndGob
report.grouped_distributions(pbmc3k, ref_obs='Cell type', columns_obs=['CD4 T', 'B', 'CD8 T', 'NK', 'Mono', 'DC', 'Platelet'],
                             scale_medians='column-wise', cmap='Reds')

generate the following error:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[18], line 1
----> 1 report.grouped_distributions(pbmc3k, ref_obs='Cell type', columns_obs=['CD4 T', 'B', 'CD8 T', 'NK', 'Mono', 'DC', 'Platelet'],
      2                              scale_medians='column-wise', cmap='Reds')

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/cia/report.py:88, in grouped_distributions(data, columns_obs, ref_obs, cmap, scale_medians, save)
     60 def grouped_distributions(data, columns_obs, ref_obs, cmap='Reds', scale_medians=None, save=None):
     61     """
     62     Plots a heatmap of median values for selected columns in AnnData.obs across cell groups and performs statistical tests 
     63     to evaluate the differences in distributions. The Wilcoxon test checks if each group's signature score is significantly 
   (...)
     85         If `save` is provided, the heatmap is saved and None is returned. Otherwise, returns the AxesSubplot object.
     86     """
---> 88     grouped_df=data.obs.groupby(ref_obs).median()
     89     grouped_df=grouped_df[columns_obs]
     90     if scale_medians!=None:

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/groupby/groupby.py:2532, in GroupBy.median(self, numeric_only)
   2459 @final
   2460 def median(self, numeric_only: bool = False) -> NDFrameT:
   2461     """
   2462     Compute median of groups, excluding missing values.
   2463 
   (...)
   2530     Freq: MS, dtype: float64
   2531     """
-> 2532     result = self._cython_agg_general(
   2533         "median",
   2534         alt=lambda x: Series(x, copy=False).median(numeric_only=numeric_only),
   2535         numeric_only=numeric_only,
   2536     )
   2537     return result.__finalize__(self.obj, method="groupby")

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/groupby/groupby.py:1998, in GroupBy._cython_agg_general(self, how, alt, numeric_only, min_count, **kwargs)
   1995     result = self._agg_py_fallback(how, values, ndim=data.ndim, alt=alt)
   1996     return result
-> 1998 new_mgr = data.grouped_reduce(array_func)
   1999 res = self._wrap_agged_manager(new_mgr)
   2000 if how in ["idxmin", "idxmax"]:

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/internals/managers.py:1472, in BlockManager.grouped_reduce(self, func)
   1470             result_blocks = extend_blocks(applied, result_blocks)
   1471     else:
-> 1472         applied = blk.apply(func)
   1473         result_blocks = extend_blocks(applied, result_blocks)
   1475 if len(result_blocks) == 0:

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/internals/blocks.py:393, in Block.apply(self, func, **kwargs)
    387 @final
    388 def apply(self, func, **kwargs) -> list[Block]:
    389     """
    390     apply the function to my values; return a block if we are not
    391     one
    392     """
--> 393     result = func(self.values, **kwargs)
    395     result = maybe_coerce_values(result)
    396     return self._split_op_result(result)

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/groupby/groupby.py:1973, in GroupBy._cython_agg_general.<locals>.array_func(values)
   1971 def array_func(values: ArrayLike) -> ArrayLike:
   1972     try:
-> 1973         result = self._grouper._cython_operation(
   1974             "aggregate",
   1975             values,
   1976             how,
   1977             axis=data.ndim - 1,
   1978             min_count=min_count,
   1979             **kwargs,
   1980         )
   1981     except NotImplementedError:
   1982         # generally if we have numeric_only=False
   1983         # and non-applicable functions
   1984         # try to python agg
   1985         # TODO: shouldn't min_count matter?
   1986         # TODO: avoid special casing SparseArray here
   1987         if how in ["any", "all"] and isinstance(values, SparseArray):

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/groupby/ops.py:831, in BaseGrouper._cython_operation(self, kind, values, how, axis, min_count, **kwargs)
    829 ids, _, _ = self.group_info
    830 ngroups = self.ngroups
--> 831 return cy_op.cython_operation(
    832     values=values,
    833     axis=axis,
    834     min_count=min_count,
    835     comp_ids=ids,
    836     ngroups=ngroups,
    837     **kwargs,
    838 )

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/groupby/ops.py:541, in WrappedCythonOp.cython_operation(self, values, axis, min_count, comp_ids, ngroups, **kwargs)
    537 self._validate_axis(axis, values)
    539 if not isinstance(values, np.ndarray):
    540     # i.e. ExtensionArray
--> 541     return values._groupby_op(
    542         how=self.how,
    543         has_dropped_na=self.has_dropped_na,
    544         min_count=min_count,
    545         ngroups=ngroups,
    546         ids=comp_ids,
    547         **kwargs,
    548     )
    550 return self._cython_op_ndim_compat(
    551     values,
    552     min_count=min_count,
   (...)
    556     **kwargs,
    557 )

File ~/miniconda3/envs/CIA_pip/lib/python3.12/site-packages/pandas/core/arrays/categorical.py:2740, in Categorical._groupby_op(self, how, has_dropped_na, min_count, ngroups, ids, **kwargs)
   2738     if kind == "transform":
   2739         raise TypeError(f"{dtype} type does not support {how} operations")
-> 2740     raise TypeError(f"{dtype} dtype does not support aggregation '{how}'")
   2742 result_mask = None
   2743 mask = self.isna()

TypeError: category dtype does not support aggregation 'median'

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions