紫乃の備忘録

プログラミングについて記録しておきたいことや、練習した絵を載せていきます。

Python- djangoの導入とサンプルコードで躓いたところ

参考にしたサイト

プロジェクトの作成:

Django2.1入門: 初心者でも10分でWebサービスを作れる!PythonフレームワークDjangoとPaizaCloudの使い方 - paiza開発日誌

サンプルコード:

PythonのWebアプリケーション(Django)を初心者にもわかりやすく解説(1)【環境構築編】

models.pyのマイグレーションで__init__()の引数が足りないエラーの対処:

Django2.0から必須になったon_deleteの使い方 - Django2の実力をつけるチュートリアルサイトDjangoBrothers[ジャンゴブラザーズ]

Django のユーザ名とパスワードを忘れてしまった場合:

Django のユーザ名とパスワードを忘れてしまった – BTY備忘録

正規表現

pythonの正規表現メモ

Pythonの正規表現の基本的な使い方 | UX MILK

include()のエラー:

Python入門 Djangoを使う(番外編「view must be a callable or a list/tuple in the case of include().」エラー)

django入門:

DjangoでさくっとWeb アプリケーション開発をする話

 

躓いたところ

  • アプリケーションフォルダの作成場所

 ⇒プロジェクトフォルダのすぐ中に作る

 ⇒models.ForeignKey()は二つの引数が必要になっているため、昔の資料に乗っているコードではエラーが出る。

  • djangoのユーザー名やパスワードを間違えたり忘れてしまったりした。

 ⇒manage.py のシェルを開き、確認&変更する。

  •  サンプルコード通りにサーバーを起動したら、以下のエラーが出た。

ValueError: too many values to unpack (expected 2)

 File "C:\PythonProjects\practice\mysite\mysite\urls.py", line 20, in <module>
url(r'^admin/', include(admin.site.urls)),
File "C:\Users\hoshi-lab\AppData\Local\Programs\Python\Python36\lib\site-packages\django\urls\conf.py", line 27, in include
'provide the namespace argument to include() instead.' % len(arg)
django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead. 

 ⇒\mysiteのurls.pyを

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('blog.urls')),
]

  にしたら、エラーが解消された。'blog.urls' はincludeをつけないとだ

  めらしい。上側はincludeがよろしくなかった以外の理由は不明。

 

Python- pandasでCSVファイル整理プログラムを作っていた時に出たエラーの対処

(初めての投稿です)

エラー

  • TypeError: '>' not supported between instances of 'str' and 'int'
  • ↑df.query("(電圧設定 > 750) & (時刻設定 > 100000)") の部分のエラーで、文字列と整数型は比較できないと言われている。

 

使ったデータ(pandasで出力したものの一部内容を変更 ●は文字列)

f:id:Muranot:20180911231806p:plain

何をしていてこうなったか

40種類ほどのデータ計測をして、.csvにまとめていた。pandasでほしいデータの列だけ抜き出して、別のcsvファイルとして保存しようとしたところ、このエラーが出た。

解決法

columnの0~3をdropで削除し、一旦、.csvで保存。もう一度開いてqueryでデータを抜き出すとエラーが出ず上手くいった。

原因

columnの0~3に文字列が入っていたため、その下の数値も文字列として読み取っていたのではないかと考えられる。

pandasは列のデータの型を一番上のデータの型に合わせる仕様なのかな?

無駄な処理をしてる気がしてならないが、自分ではこれが精いっぱい…