DataFrameGroupBy.quantile raises for non-numeric dtypes rather than dropping columns (original) (raw)

In pandas 0.24.x, we had

In [1]: import pandas as pd

In [2]: pd.DataFrame({"A": ['a', 'b']}).groupby([0, 0]).quantile() Out[2]: Empty DataFrame Columns: [] Index: []

In 0.25.0, we have

In [3]: pd.DataFrame({"A": ['a', 'b']}).groupby([0, 0]).quantile()

TypeError Traceback (most recent call last) in ----> 1 pd.DataFrame({"A": ['a', 'b']}).groupby([0, 0]).quantile()

~/sandbox/pandas/pandas/core/groupby/groupby.py in quantile(self, q, interpolation) 1908 post_processing=post_processor, 1909 q=q, -> 1910 interpolation=interpolation, 1911 ) 1912

~/sandbox/pandas/pandas/core/groupby/groupby.py in _get_cythonized_result(self, how, grouper, aggregate, cython_dtype, needs_values, needs_mask, needs_ngroups, result_is_index, pre_processing, post_processing, **kwargs) 2236 vals = obj.values 2237 if pre_processing: -> 2238 vals, inferences = pre_processing(vals) 2239 func = partial(func, vals) 2240

~/sandbox/pandas/pandas/core/groupby/groupby.py in pre_processor(vals) 1875 if is_object_dtype(vals): 1876 raise TypeError( -> 1877 "'quantile' cannot be performed against 'object' dtypes!" 1878 ) 1879

TypeError: 'quantile' cannot be performed against 'object' dtypes!

This is most relevant for mixed dataframes

In [6]: df = pd.DataFrame({"A": [0, 1], 'B': ['a', 'b']})

In [7]: df.groupby([0, 1]).quantile(0.5)

...

TypeError: 'quantile' cannot be performed against 'object' dtypes!