質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

785閲覧

crosstabでmargins=Trueを使いたい

Yuki7777777

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/22 01:48

前提・実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2020/01/23 14:10

以下のように質問を編集してください。 ・duration_biningと train["y"]がどのようなデータなのかわかるようにしてください。同じような性質で同じエラーになるダミーデータを提示していただくと一番良いです。難しければ、printした結果とか。 ・エラーはコードブロックに入れてください。 ``` エラーメッセージ ``` のようにします。 ・テンプレートの不要部分は削除していただいて結構です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問