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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Q&A

解決済

1回答

2866閲覧

Jupyter Notebookで、NameError: name 'y' is not definedと表示される

sophfcrb

総合スコア3

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

0グッド

0クリップ

投稿2021/04/21 13:31

前提・実現したいこと

初心者ですが宜しくお願いします。

マーケティングパイソン入門という書籍のP175のコードを入力していますが、エラーになります。

Jupyter Notebookで、下記のコードを入力しました。

import pandas as pd
train=pd.read_csv('./data/train.csv',encoding='ms932')
y=train['vol']
y

すると以下のエラーメッセージが発生しました。


NameError Traceback (most recent call last)
<ipython-input-1-9063a9f0e032> in <module>
----> 1 y

NameError: name 'y' is not defined

試したこと

大文字小文字、スペル間違いなど見直しましたが、問題はないようです。

Googleで、NameError の事例も調べました。
下記のような物が出てきましたが、私の事例とは違うようです。

https://oku.edu.mie-u.ac.jp/~okumura/python/first.html

https://ja.stackoverflow.com/questions/49412/%e3%82%b3%e3%83%bc%e3%83%89%e3%82%92jupyter-notebook%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ab%e4%bf%9d%e5%ad%98%e3%81%97%e3%81%a6import%e3%81%99%e3%82%8b%e3%81%a8%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e3%81%aa%e3%82%8b/49414#49414

もう2時間以上、試行錯誤していますが、自力では解決が難しそうですので、ご教示いただければ幸いです。

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

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

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

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

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

meg_

2021/04/21 13:36

> import pandas as pd > train=pd.read_csv('./data/train.csv',encoding='ms932') > y=train['vol'] > y 上記コードは一つのセルに書かれていますか?
sophfcrb

2021/04/21 13:39

いえ、別々のセルに書いております。
退会済みユーザー

退会済みユーザー

2021/04/21 16:20

train.head() をしてみてください。train.csvの中身がわからないとなんとも。
sophfcrb

2021/04/22 00:25

質問では省略しましたが、train.head()は実行可能です。データの他の最初の5行は表示されます。
guest

回答1

0

ベストアンサー

質問への追記を考慮すると、y=train['vol']を含むセルを未実行の状態で、yを実行したのではないでしょうか。

NameError: name 'y' is not definedとは、yが定義されていないことを示すエラーです。

y=train['vol']を含むセルを実行していなければ、yは定義されないため、上記のようなエラーが出たのだと考えられます。

Jupyter Notebookの再生ボタンは現在選択しているセルの内容しか実行できません。
Run Allのようなすべてのセルを実行する機能を使用する、あらかじめy=train['vol']を含むセルを実行する、すべての記述を1つのセルにまとめる、などの対策をしてみてください。

投稿2021/04/21 21:42

編集2021/04/21 21:43
sasakaman

総合スコア53

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

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

sophfcrb

2021/04/22 00:41

ご回答ありがとうございます。 「y=train['vol']を含むセルを実行していなければ、yは定義されない」 ということは理解しております。 ・Run Allのようなすべてのセルを実行する機能を使用する、 ・あらかじめy=train['vol']を含むセルを実行する、 ・すべての記述を1つのセルにまとめる、 ご教示いただいた上記3点は試してみましたが、ダメでした。同じエラーが出てしまいます。 補足しますと、最初はもっと先のプログラムも書き進めることができていましたが、途中で同じようなエラーになり、どうにも進めなくなって新規ファイルを作成している途上でのトラブルです。 import pandas as pd train=pd.read_csv('./data/train.csv',encoding='ms932') train.head() y=train['vol'] y  現在はここでエラー X=train[['temperature']] from sklearn.linear_model import LinearRegression model=LinearRegression() model.fit(X,y) 最初はここまで書き進めてエラー といった具合です。
sasakaman

2021/04/22 03:40

私の環境(python: 3.7.4 pandas: 0.25.1)と、手元のcsvでコピペしたコードを実行してみましたが、問題なく動作しました。 ちなみに、pythonとpandasのバージョンはいくつでしょうか?
sophfcrb

2021/04/23 13:30

ご回答ありがとうございます。 バージョンを以下の方法でJupyter Notebookで確認しました。 Pythonのバージョン 3.8.5 import sys print(sys.version) 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] pandasのバージョン 1.1.3 import pandas as pd print(pd.__version__) 1.1.3 本の最初のステップを飛ばして、いきなり需要予測の章から入力を始めたので、何か必要なインストールを飛ばしてしまっているのでしょうかね?
sasakaman

2021/04/24 07:09

同じバージョンにて上記コードをコピー、自身の持っているcsvに変更してテストしましたが、再現しませんでした。 (念のため確認ですが、実際のコードではyの後に全角スペースは入っていないですよね?上記コードには全角スペースが入っているため、別のエラーが発生しました。) 申し訳ございませんが、私にはこれ以上のことはわかりません… >本の最初のステップを飛ばして、いきなり需要予測の章から入力を始めたので、何か必要なインストールを飛ばしてしまっているのでしょうかね? インストールしたパッケージを使用するにはimportする必要があります。 現在のコードでimportしているのはpandasだけなので、そこは問題ないと思います。 念のため、以下を試してみてください。少ないながらうまく実行できることがあります。 ・ターミナルにて`conda uninstall pandas`後、`conda install pandas`を実行、再度上述のコードを実行。 ・新規で仮想環境を作成後、その環境で`conda install pandas`を実行、再度上述のコードを実行。
sophfcrb

2021/04/24 13:19

コメントいただきありがとうございます。 いじっているうちに、実行できるようになりました。 なぜエラーになっていたのかはわかりませんが、解決方法はわかりました。 今後、同じような現象に困った方のために説明しますと、 Jupyter Notebokの各セルに、 In [5] Out [5] という見出し?がありますが、 これが途中から空欄になっておりました。 In [5] Out [5] In [ ] Out [ ] In [ ] Out [ ] と、[6]、[7].....と入るべき箇所が空欄になっていたのです。 Runで実行しても In [*] Out [*] とビジー状態になるだけで、プログラムのエラーは治りませんでした。 しかし、[]の空欄のセルを、上から順にRunさせていくと、数字が[6] [7].... と入るようになり、それ以降はエラーが出なくなりました。 セルがきちんと実行されていなかったからエラーになったのだと思います。 とりあえず、なぜ[]と空欄ができたのかよくわからないのですが、このまま進めそうです。 ご回答いただいた方、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問