[解決済み] Pandasのデータフレームです。ValueError: num は 1 <= num <= 0 でなければならず、1 ではありません。
質問
をプロットしようとすると、以下のエラーが発生します。
pandas dataframe
:
ValueError: num must be 1 <= num <= 0, not 1
コード
import matplotlib.pyplot as plt
names = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety']
custom = pd.DataFrame(x_train) //only a portion of the csv
custom.columns = names
custom.hist()
plt.show()
から再度読み込んでみました。
csv
と全く同じエラーが出ます。
編集してください。
print x_train
を出力します。
[[0.0 0.0 0.0 0.0 0.0 0.0]
[1.0 1.0 0.0 0.0 0.0 0.0]
[0.0 0.0 0.0 0.0 0.0 0.0]
...,
[0.0 0.0 0.0 0.0 0.0 0.0]
[0.3333333333333333 0.3333333333333333 2.0 2.0 2.0 2.0]
[0.0 0.0 3.0 3.0 3.0 3.0]]
Edit2です。
エラーの完全なリスト(Traceback)。
<ブロッククオートトレースバック(直近の呼び出し)。
ファイル "temp.py", 行 104, in カスタム.ドロップナ().ヒスト()
ファイル "/home/kostas/anaconda2/lib/python2.7/site-packages/pandas/tools/plotting.py", 行 2893, in hist_frame layout=layout)
ファイル "/home/kostas/anaconda2/lib/python2.7/site-packages/pandas/tools/plotting.py", ライン 3380, イン _subplots ax0 = fig.add_subplot(nrows, ncols, 1, **subplot_kw)
ファイル "/home/kostas/anaconda2/lib/python2.7/site-packages/matplotlib/figure.py", 行 1005, in add_subplot a = subplot_class_factory(projection_class)(self, *args, **kwargs)
ファイル "/home/kostas/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_subplots.py", 行 64, in イニット maxn=rows*cols, num=num))です。
どのように解決するのですか?
つまり、あなたの問題は、配列 train_x の形式に関係するものであることは間違いないと思います。私はあなたのプログラムを10,000行6列の配列で試してみましたが、問題なく動作しましたので、問題はサイズではありません。何らかの理由で
len(x_train)
または
len(x_train[0])
は0である。そう思わせるのは、こうである。
この ValueError は matplotlib.axes._subplot モジュールによるもので、大きなプロットの中にたくさんの小さなサブプロットを描くことを扱います (つまり、それぞれの小さなヒストグラム)。このモジュールのコードは以下の通りです。
"""
*rows*, *cols*, *num* are arguments where
the array of subplots in the figure has dimensions *rows*,
*cols*, and where *num* is the number of the subplot
being created. *num* starts at 1 in the upper left
corner and increases to the right.
"""
rows, cols, num = args
rows = int(rows)
cols = int(cols)
if isinstance(num, tuple) and len(num) == 2:
num = [int(n) for n in num]
self._subplotspec = GridSpec(rows, cols)[num[0] - 1:num[1]]
else:
if num < 1 or num > rows*cols:
raise ValueError(
"num must be 1 <= num <= {maxn}, not {num}".format(
maxn=rows*cols, num=num))
あなたの問題はこの部分にあります(コード内のコメントに説明があります)。
if num < 1 or num > rows*cols:
# maxN is the number of rows*cols and since this is showing 0 for you (in your error stacktrace),
# it means the number of cols being passed into your histogram is 0. Don't know why though :P
raise ValueError(
"num must be 1 <= num <= {maxn}, not {num}".format(
maxn=rows*cols, num=num))
入力フォーマットをどのように読み込んでいるのか分かりませんが、問題はそれに関連していることは間違いないでしょう。x_trainにこれを設定するとうまくいきます。
x_train = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[1.0, 1.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.3333333333333333, 0.3333333333333333, 2.0, 2.0, 2.0, 2.0],
[0.0, 0.0, 3.0, 3.0, 3.0, 3.0]]
質問のコードを呼び出す前にこれを実行してみて、それがうまくいくかどうか見てみましょう。
x_train = list([list(x) for x in x_train])
関連
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
python string splicing.join()とsplitting.split()の説明
-
PicgoのイメージベッドツールをPythonで実装する
-
python implement mysql add delete check change サンプルコード
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】NameError: 名前 'self' が定義されていません。