前提・実現したいこと
pd.crosstab()でbiningした項目と正解ラベルのクロス集計を出したいです。
margins=Trueを追加しなければ、問題なく処理されるのですが、追加した途端、エラーが出ます。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last)
<ipython-input-62-e514bdfd03fd> in <module>
----> 1 dura = pd.crosstab(duration_bining, train["y"], margins=True)
2 dura
~/anaconda3/lib/python3.7/site-packages/pandas/core/reshape/pivot.py in crosstab(index, columns, values, rownames, colnames, aggfunc, margins, margins_name, dropna, normalize)
519 table = df.pivot_table('dummy', index=rownames, columns=colnames,
520 margins=margins, margins_name=margins_name,
--> 521 dropna=dropna, **kwargs)
522
523 # Post-process
~/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py in pivot_table(self, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name)
5757 aggfunc=aggfunc, fill_value=fill_value,
5758 margins=margins, dropna=dropna,
-> 5759 margins_name=margins_name)
5760
5761 def stack(self, level=-1, dropna=True):
~/anaconda3/lib/python3.7/site-packages/pandas/core/reshape/pivot.py in pivot_table(data, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name)
133 cols=columns, aggfunc=aggfunc,
134 observed=dropna,
--> 135 margins_name=margins_name, fill_value=fill_value)
136
137 # discard the top level
~/anaconda3/lib/python3.7/site-packages/pandas/core/reshape/pivot.py in _add_margins(table, data, values, rows, cols, aggfunc, observed, margins_name, fill_value)
157 msg = u'Conflicting name "{name}" in margins'.format(name=margins_name)
158 for level in table.index.names:
--> 159 if margins_name in table.index.get_level_values(level):
160 raise ValueError(msg)
161
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/category.py in contains(self, key)
325 return self.hasnans
326
--> 327 return contains(self, key, container=self._engine)
328
329 @Appender(_index_shared_docs['contains'] % _index_doc_kwargs)
~/anaconda3/lib/python3.7/site-packages/pandas/core/arrays/categorical.py in contains(cat, key, container)
186 # can't be in container either.
187 try:
--> 188 loc = cat.categories.get_loc(key)
189 except KeyError:
190 return False
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/interval.py in get_loc(self, key, method)
768 key = self._maybe_cast_slice_bound(key, 'left', None)
769
--> 770 start, stop = self._find_non_overlapping_monotonic_bounds(key)
771
772 if start is None or stop is None:
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/interval.py in _find_non_overlapping_monotonic_bounds(self, key)
716
717 start = self._searchsorted_monotonic(key, 'left')
--> 718 stop = self._searchsorted_monotonic(key, 'right')
719 return start, stop
720
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/interval.py in _searchsorted_monotonic(self, label, side, exclude_label)
677 sub_idx = self.left
678 if self.open_left or exclude_label:
--> 679 label = _get_prev_label(label)
680
681 return sub_idx._searchsorted_monotonic(label, side)
~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/interval.py in _get_prev_label(label)
75 else:
76 raise TypeError('cannot determine next label for type {typ!r}'
---> 77 .format(typ=type(label)))
78
79
TypeError: cannot determine next label for type <class 'str'>
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー