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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1201閲覧

クロス集計表を作成しようとするとエラー

_hh

総合スコア79

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/02/14 06:15

crosstabコマンドで、クロス集計表を作成しようとするとエラーが出ます。
以前はできていたnotebookなのですが、なぜか以下の様なエラーが出るようになりました:

Python3

1cross=pd.crosstab(df2_645608['Customer'],df_id['年代'],margins=True) 2
ValueError Traceback (most recent call last) <ipython-input-41-c699f6e1a32c> in <module>() 1 #年代ごとの売り上げを棒グラフ表示 ----> 2 cross=pd.crosstab(df2_645608['Customer'],df_id['年代'],margins=True) 3 display(cross.tail()) 4 freq_645608=cross.loc['All',:] 5 freq_645608.plot.bar() ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\pivot.py in crosstab(index, columns, values, rownames, colnames, aggfunc, margins, margins_name, dropna, normalize) 490 table = df.pivot_table('__dummy__', index=rownames, columns=colnames, 491 margins=margins, margins_name=margins_name, --> 492 dropna=dropna, **kwargs) 493 494 # Post-process ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\frame.py in pivot_table(self, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name) 5301 aggfunc=aggfunc, fill_value=fill_value, 5302 margins=margins, dropna=dropna, -> 5303 margins_name=margins_name) 5304 5305 def stack(self, level=-1, dropna=True): ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\pivot.py in pivot_table(data, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name) 138 cols=columns, aggfunc=aggfunc, 139 observed=dropna, --> 140 margins_name=margins_name, fill_value=fill_value) 141 142 # discard the top level ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\pivot.py in _add_margins(table, data, values, rows, cols, aggfunc, observed, margins_name, fill_value) 188 observed, 189 grand_margin, --> 190 margins_name) 191 if not isinstance(marginal_result_set, tuple): 192 return marginal_result_set ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\pivot.py in _generate_marginal_results(table, data, values, rows, cols, aggfunc, observed, grand_margin, margins_name) 295 margin_keys.append(all_key) 296 --> 297 result = concat(table_pieces, axis=cat_axis) 298 299 if len(rows) == 0: ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy) 223 keys=keys, levels=levels, names=names, 224 verify_integrity=verify_integrity, --> 225 copy=copy, sort=sort) 226 return op.get_result() 227 ~\Miniconda3\envs\stats\lib\site-packages\pandas\core\reshape\concat.py in __init__(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy, sort) 257 258 if len(objs) == 0: --> 259 raise ValueError('No objects to concatenate') 260 261 if keys is None: ValueError: No objects to concatenate

想定される原因がありましたら、ご教示いただけますと幸いです。

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

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

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

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

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

guest

回答2

0

自己解決

上記、自己解決しました。前段の処理で
df2_645608というデータフレームのindexが変わってしまっており、連番でなくなっていたことが
原因の様です。df_idの方は0から連番でindexが付いています。このような異なるindexの場合、crosstabが動作しないようです。
提示のコードの前段で以下の処理を加えることで解決しました。

Python3

1df_645608 = df_645608.reset_index(drop=True)

投稿2019/02/15 02:41

編集2019/02/15 02:42
_hh

総合スコア79

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

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

0

データがないと提示エラーが発生します。

Python

1import pandas as pd 2df2_645608 = pd.DataFrame({'Customer':[]}) 3df_id = pd.DataFrame({'年代':[]}) 4cross=pd.crosstab(df2_645608['Customer'],df_id['年代'],margins=True)

投稿2019/02/14 06:20

can110

総合スコア38262

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

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

_hh

2019/02/14 06:26

有難うございます。しかし、データは確かにいずれも入っていまして、head()をしますと確かに値が表示されます。。
can110

2019/02/14 06:28

コードやデータの詳細が不明な質問ですので、原因のひとつとしての回答となります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問