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

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

ただいまの
回答率

90.61%

  • Python 3.x

    5924questions

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

pyファイルの実行(前処理大全[データ分析のためのSQL/R/Python実践テクニック])

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 402

yuyu127

score 15

前処理大全[データ分析のためのSQL/R/Python実践テクニック]を
読んでいるのですが、早速躓いております。

普段、Jupyter notebookでしかpythonを触っていないのですが、
この本では.pyファイルになっており、動かすことができません。

PCはWindowsです。

コマンドプロンプトから、python ファイル名.pyとしてpyファイルを実行させると
下記のエラーが出ます。

Traceback (most recent call last):
File "python_2_not_awesome.py", line 1, in <module>
from preprocess.load_data.data_loader import load_hotel_reserve
ModuleNotFoundError: No module named 'preprocess'

ファイルの1行目は読みにいけているため、パスは通っていそうですが
モジュールがないと言われます。

基本的な質問で申し訳ありませんが、教えていただけると助かります。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • atmn3356

    2018/05/18 15:34

    モジュールはきちんとインストールされていますか?pip show <インストールモジュール名>で確認してみて下さい

    キャンセル

  • quiqui

    2018/05/18 16:13

    何ページを読んでるんでしょうか……

    キャンセル

  • yuyu127

    2018/05/18 18:22

    失礼しました。29ページ目のpython_2_not_awesome.pyを試そうとコマンドプロンプトから呼び出して上記のエラーが出ました。

    キャンセル

回答 4

+1

githubから取ってきた中身ににpreprocessというフォルダがあります。

そのフォルダが見える状況でpwdすると、パスが得られます。

export PYTHONPATH=$(pwd):$PYTHONPATH

をすることで、そのパスをpythonのインタプリタが参照するようになります。

その後に実行してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/18 22:42

    そして、今気づく、Windowsであると…
    pythonのパスの追加の仕方。
    https://www.pythonweb.jp/tutorial/install/index3.html

    キャンセル

  • 2018/05/30 09:54

    環境構築で躓いているので、そこから調べていこうと思います。
    ありがとうございました。

    キャンセル

+1

回答というより試した結果の報告になります。

OS: Mac
PyCharmインストール
下記リポジトリをcloneしました
https://github.com/ghmagazine/awesomebook

pip install pandas

PyCharmでpython_2_not_awesome.pyRUNボタンを押下
イメージ説明

# python_2_not_awesome.py
from preprocess.load_data.data_loader import load_hotel_reserve
customer_tb, hotel_tb, reserve_tb = load_hotel_reserve()

# 下の行から本書スタート
# iloc関数の2次元配列の1次元目に:を指定することで、全行を抽出
# iloc関数の2次元配列の2次元目に抽出したい行番号の配列を指定することで、列を抽出
# 0:6は、[0, 1, 2, 3, 4, 5]と同様の意味
reserve_tb.iloc[:, 0:6]

問題なく動作しました、このソースコードはjupyter notebooks用?に作られているので
何も表示されないが出力結果としては正しいです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/19 00:26

    そうですね。
    そのままの丸ごとコピーして、そのまま実行するのが一番ですね。そうすれば、著者の作った自作スクリプトのdata_loader.pyもうまくimportできるはずですね。

    キャンセル

  • 2018/05/30 09:53

    ありがとうございました。
    まだ全て理解できたわけではありませんが、少しずつ調べながら解決したいと思います。

    キャンセル

checkベストアンサー

0

とにかく動けばいいというのであれば、load_dataの下にあるdata_loader.pyを今、実行しているnotebookのあるディレクトリにコピーして

import data_loader

とすればうまくいくはずです。

もう少しエレガントにやるとすれば、load_dataそのものをnotebookのあるディレクトリにコピーするといいはずですが、やったことがないのでわかりません。

mkgreiさんの方法もいいのですが、環境変数に手を加えることに慣れていないと他のアプリに影響しかねないので避けたほうがいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/30 09:52

    R.Shigemori様
    ありがとうございました。importすることはできました。
    そこからはもう一度調べながら読み進めたいと思います。

    キャンセル

0

preprocessモジュールの正体は何ですか?

  • インストールしないといけないライブラリ
  • (その本で作るように言っている)置いておかないといけないファイル

いろいろ考えられますが・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/18 18:29

    ありがとうございます。
    説明が足らず申し訳ありませんでした。
    前処理大全[データ分析のためのSQL/R/Python実践テクニック]という本に記載してある
    https://github.com/ghmagazine/awesomebookを利用しております。

    キャンセル

  • 2018/05/18 18:56 編集

    そのページだとpycharmでやれって書いてあるんですが、その辺の手順の説明は本に載ってないですか?

    キャンセル

  • 2018/05/18 23:47

    リポジトリのリンクはここのコメントではなく質問に追記するようにして、回答者全員に見えるようにしたほうがいいですよ。

    キャンセル

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    5924questions

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