---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/IPython/core/formatters.py:915, in IPythonDisplayFormatter.__call__(self, obj)
913 pass
914 else:
--> 915 printer(obj)
916 return True
917 # Finally look for special method names
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/widget_utils.py:6, in _display_as_buckaroo(df)
4 def _display_as_buckaroo(df):
5 from IPython.display import display
----> 6 return display(BuckarooWidget(df, showCommands=False))
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/buckaroo_widget.py:112, in BuckarooWidget.__init__(self, df, sampled, summaryStats, reorderdColumns, showCommands, autoType, postProcessingF)
110 #we need dfConfig setup first before we get the proper working_df for auto_cleaning
111 self.raw_df = df
--> 112 self.run_autoclean(autoType)
114 warnings.filterwarnings('default')
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/buckaroo_widget.py:119, in BuckarooWidget.run_autoclean(self, autoType)
116 def run_autoclean(self, autoType):
117 if autoType:
118 # this will trigger the setting of self.typed_df
--> 119 self.operations = get_auto_type_operations(
120 self.raw_df, metadata_f=self.typing_metadata_f,
121 recommend_f=self.typing_recommend_f)
122 else:
123 self.set_typed_df(self.get_working_df())
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:748, in TraitType.__set__(self, obj, value)
746 raise TraitError('The "%s" trait is read-only.' % self.name)
747 else:
--> 748 self.set(obj, value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:3607, in List.set(self, obj, value)
3605 return super().set(obj, [value])
3606 else:
-> 3607 return super().set(obj, value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:737, in TraitType.set(self, obj, value)
733 silent = False
734 if silent is not True:
735 # we explicitly compare silent to True just in case the equality
736 # comparison above returns something other than True/False
--> 737 obj._notify_trait(self.name, old_value, new_value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1532, in HasTraits._notify_trait(self, name, old_value, new_value)
1531 def _notify_trait(self, name, old_value, new_value):
-> 1532 self.notify_change(
1533 Bunch(
1534 name=name,
1535 old=old_value,
1536 new=new_value,
1537 owner=self,
1538 type="change",
1539 )
1540 )
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/ipywidgets/widgets/widget.py:635, in Widget.notify_change(self, change)
632 if name in self.keys and self._should_send_property(name, getattr(self, name)):
633 # Send new state to front-end
634 self.send_state(key=name)
--> 635 super().notify_change(change)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1544, in HasTraits.notify_change(self, change)
1542 def notify_change(self, change):
1543 """Notify observers of a change event"""
-> 1544 return self._notify_observers(change)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1591, in HasTraits._notify_observers(self, event)
1588 elif isinstance(c, EventHandler) and c.name is not None:
1589 c = getattr(self, c.name)
-> 1591 c(event)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/buckaroo_widget.py:153, in BuckarooWidget.handle_operations(self, change)
151 new_ops = change['new']
152 split_ops = split_operations(new_ops)
--> 153 self.machine_gen_operations = split_ops[0]
155 user_gen_ops = split_ops[1]
157 #if either the user_gen part or the machine_gen part changes,
158 #we still have to recompute the generated code and
159 #resulting_df because the input df will be different
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:748, in TraitType.__set__(self, obj, value)
746 raise TraitError('The "%s" trait is read-only.' % self.name)
747 else:
--> 748 self.set(obj, value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:3607, in List.set(self, obj, value)
3605 return super().set(obj, [value])
3606 else:
-> 3607 return super().set(obj, value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:737, in TraitType.set(self, obj, value)
733 silent = False
734 if silent is not True:
735 # we explicitly compare silent to True just in case the equality
736 # comparison above returns something other than True/False
--> 737 obj._notify_trait(self.name, old_value, new_value)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1532, in HasTraits._notify_trait(self, name, old_value, new_value)
1531 def _notify_trait(self, name, old_value, new_value):
-> 1532 self.notify_change(
1533 Bunch(
1534 name=name,
1535 old=old_value,
1536 new=new_value,
1537 owner=self,
1538 type="change",
1539 )
1540 )
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/ipywidgets/widgets/widget.py:635, in Widget.notify_change(self, change)
632 if name in self.keys and self._should_send_property(name, getattr(self, name)):
633 # Send new state to front-end
634 self.send_state(key=name)
--> 635 super().notify_change(change)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1544, in HasTraits.notify_change(self, change)
1542 def notify_change(self, change):
1543 """Notify observers of a change event"""
-> 1544 return self._notify_observers(change)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/traitlets/traitlets.py:1591, in HasTraits._notify_observers(self, event)
1588 elif isinstance(c, EventHandler) and c.name is not None:
1589 c = getattr(self, c.name)
-> 1591 c(event)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/buckaroo_widget.py:193, in BuckarooWidget.interpret_machine_gen_ops(self, change, force)
191 return # nothing changed, do no computations
192 new_ops = change['new']
--> 193 self.set_typed_df(self.interpret_ops(new_ops, self.get_working_df()))
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/buckaroo_widget.py:206, in BuckarooWidget.set_typed_df(self, new_df)
204 # stats need to be rerun each time
205 self.stats = DfStats(self.typed_df, [TypingStats, DefaultSummaryStats, ColDisplayHints])
--> 206 self.summaryDf = df_to_obj(self.stats.presentation_sdf, self.stats.col_order)
207 self.update_based_on_df_config(3)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/buckaroo/analysis_management.py:196, in DfStats.presentation_sdf(self)
194 if self.ap.summary_stats_display == "all":
195 return self.sdf
--> 196 return self.sdf.loc[self.ap.summary_stats_display]
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexing.py:1153, in _LocationIndexer.__getitem__(self, key)
1150 axis = self.axis or 0
1152 maybe_callable = com.apply_if_callable(key, self.obj)
-> 1153 return self._getitem_axis(maybe_callable, axis=axis)
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexing.py:1382, in _LocIndexer._getitem_axis(self, key, axis)
1379 if hasattr(key, "ndim") and key.ndim > 1:
1380 raise ValueError("Cannot index with multidimensional key")
-> 1382 return self._getitem_iterable(key, axis=axis)
1384 # nested tuple slicing
1385 if is_nested_tuple(key, labels):
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexing.py:1322, in _LocIndexer._getitem_iterable(self, key, axis)
1319 self._validate_key(key, axis)
1321 # A collection of keys
-> 1322 keyarr, indexer = self._get_listlike_indexer(key, axis)
1323 return self.obj._reindex_with_indexers(
1324 {axis: [keyarr, indexer]}, copy=True, allow_dups=True
1325 )
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexing.py:1520, in _LocIndexer._get_listlike_indexer(self, key, axis)
1517 ax = self.obj._get_axis(axis)
1518 axis_name = self.obj._get_axis_name(axis)
-> 1520 keyarr, indexer = ax._get_indexer_strict(key, axis_name)
1522 return keyarr, indexer
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexes/base.py:6114, in Index._get_indexer_strict(self, key, axis_name)
6111 else:
6112 keyarr, indexer, new_indexer = self._reindex_non_unique(keyarr)
-> 6114 self._raise_if_missing(keyarr, indexer, axis_name)
6116 keyarr = self.take(indexer)
6117 if isinstance(key, Index):
6118 # GH 42790 - Preserve name from an Index
File ~/anaconda3/envs/buckaroo-install-jp4-3/lib/python3.11/site-packages/pandas/core/indexes/base.py:6178, in Index._raise_if_missing(self, key, indexer, axis_name)
6175 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
6177 not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())
-> 6178 raise KeyError(f"{not_found} not in index")
KeyError: "['mean'] not in index"