BUG: sem() with level raised ValueError in pandas 1.2 · Issue #38774 · pandas-dev/pandas (original) (raw)
Note: Please read this guide detailing how to provide the necessary information for us to reproduce your bug.
import pandas as pd import numpy as np
idx = pd.MultiIndex.from_arrays([ [str(i) for i in range(100)], np.random.choice(['A', 'B'], size=(100,)) ], names=['a', 'b'])
data_dict = dict((str(i), np.random.rand(100)) for i in range(10)) data_dict['string'] = [str(i) for i in range(100)] data_dict['bool'] = np.random.choice([True, False], (100,)) data = pd.DataFrame(data_dict, index=idx)
data.sem(level=1)
Traceback (most recent call last):
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3417, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-8-cd9abe134148>", line 1, in <module>
data.sem(level=1)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py", line 10925, in sem
return NDFrame.sem(self, axis, skipna, level, ddof, numeric_only, **kwargs)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py", line 10665, in sem
return self._stat_function_ddof(
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py", line 10655, in _stat_function_ddof
return self._agg_by_level(
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py", line 10552, in _agg_by_level
return getattr(grouped, name)(**kwargs)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/groupby/groupby.py", line 1612, in sem
result.iloc[:, cols] = result.iloc[:, cols] / np.sqrt(
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/indexing.py", line 691, in __setitem__
iloc._setitem_with_indexer(indexer, value, self.name)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/indexing.py", line 1636, in _setitem_with_indexer
self._setitem_single_block(indexer, value, name)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/indexing.py", line 1860, in _setitem_single_block
self.obj._mgr = self.obj._mgr.setitem(indexer=indexer, value=value)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/internals/managers.py", line 568, in setitem
return self.apply("setitem", indexer=indexer, value=value)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/internals/managers.py", line 427, in apply
applied = getattr(b, f)(**kwargs)
File "/Users/wenjun/miniconda3/lib/python3.8/site-packages/pandas/core/internals/blocks.py", line 1025, in setitem
values[indexer] = value
ValueError: shape mismatch: value array of shape (2,12) could not be broadcast to indexing result of shape (11,2)
Correct aggregation results shall be returned.