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

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

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

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

Q&A

解決済

1回答

3929閲覧

ValueError: Bin edges must be unique: array([ 0.17, 17. , 22. , 25. , 29. , 29. , 36. , 45. ,

yuudai

総合スコア65

Python 3.x

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

0グッド

0クリップ

投稿2018/05/31 08:07

python

1#map Fare value into groups of numerical values 2df_data["AgeBand"]=pd.qcut(df_data['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int') 3 4df_train["AgeBand"]=pd.qcut(df_train['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int') 5 6df_test["AgeBand"]=pd.qcut(df_test['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int') 7 8df_train[["AgeBand","Survived"]].groupby(["AgeBand"],as_index=False).mean() 9print('AgeBand feature created')

ValueError Traceback (most recent call last)
<ipython-input-32-e2ea5911c9bb> in <module>()
1 #map Fare value into groups of numerical values
----> 2 df_data["AgeBand"]=pd.qcut(df_data['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int')
3 df_train["AgeBand"]=pd.qcut(df_train['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int')
4 df_test["AgeBand"]=pd.qcut(df_test['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int')
5 df_train[["AgeBand","Survived"]].groupby(["AgeBand"],as_index=False).mean()

~\Anaconda3\lib\site-packages\pandas\core\reshape\tile.py in qcut(x, q, labels, retbins, precision, duplicates)
206 fac, bins = _bins_to_cuts(x, bins, labels=labels,
207 precision=precision, include_lowest=True,
--> 208 dtype=dtype, duplicates=duplicates)
209
210 return _postprocess_for_cut(fac, bins, retbins, x_is_series,

~\Anaconda3\lib\site-packages\pandas\core\reshape\tile.py in _bins_to_cuts(x, bins, right, labels, precision, include_lowest, dtype, duplicates)
232 raise ValueError("Bin edges must be unique: {bins!r}.\nYou "
233 "can drop duplicate edges by setting "
--> 234 "the 'duplicates' kwarg".format(bins=bins))
235 else:
236 bins = unique_bins

ValueError: Bin edges must be unique: array([ 0.17, 17. , 22. , 25. , 29. , 29. , 36. , 45. , 80. ]).
You can drop duplicate edges by setting the 'duplicates' kwarg

どうすれば良いですか?
誰か教えてください。

リンク内容

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

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

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

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

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

guest

回答1

0

ベストアンサー

理由:値に重複があるので。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.qcut.html

duplicates='drop'
を渡せばエラーは無くなりますが、本来重複ないデータを扱っているのであれば、他のところにバグがあるということです。

投稿2018/05/31 13:11

mkgrei

総合スコア8560

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

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

yuudai

2018/06/01 03:28

#map Fare value into groups of numerical values df_data["AgeBand"]=pd.qcut(df_data['Age'],8,labels=[1,2,3,4,5,6,7,8],duplicates='drop').astype('int') df_train["AgeBand"]=pd.qcut(df_train['Age'],8,labels=[1,2,3,4,5,6,7,8],duplicates='drop').astype('int') df_test["AgeBand"]=pd.qcut(df_test['Age'],8,labels=[1,2,3,4,5,6,7,8]).astype('int') df_train[["AgeBand","Survived"]].groupby(["AgeBand"],as_index=False).mean() print('AgeBand feature created') ValueError: Bin labels must be one fewer than the number of bin edges 解決できませんでした。
yuudai

2018/06/01 03:29

これはほかに問題があるということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問