会社説明動画をYouTubeで公開しました
会社説明動画をYouTubeで公開しました 昨年より続く世界規模の環境変化で、イベントをはじめとするオフラインのイベントが中止を余儀なくされています。そのため企業説明会や会社訪問で会うことができなかった多くの方に向けて、 […]
Filter by Category
会社説明動画をYouTubeで公開しました 昨年より続く世界規模の環境変化で、イベントをはじめとするオフラインのイベントが中止を余儀なくされています。そのため企業説明会や会社訪問で会うことができなかった多くの方に向けて、 […]
DjangoのWEBプリケーションでCSVをpandasで読み込んでforで一行ずつループ処理をしたところ、毎回決まったところで決まったエラーが出たのでPyCharmのデバッグ機能を使って原因を調べた内容です。 プログラ […]
Pythonであるフォルダ内のファイルを別のフォルダにコピーする方法です。 ディレクトリ構造(ファイルのコピー後) directory = (os.getcwd())現在のディレクトリを取得します。 image_path […]
globモジュールを使いディレクトリ内にあるファイルを取得する方法です。 ディレクトリ構造 まずはディレクトリ内のjpgを全て取得します。 directory = (os.getcwd())で現在のディレクトリのパスを取 […]
Djangoのモデル上でDateTimeField型のデータが今日の日付のデータを取得する方法です。 1つ目00:00:00から23:59:59までの範囲を条件に取得します。 2つ目今日の日付が含まれるものを条件に取得し […]
テキストファイルやCSVファイルに書き出す時に文字コードをShift-JISに指定して書き出すとエラーになる場合があります。よく見るのが、-や を変換した時に出るエラーで\uff0dや\xa0と表示されます。 […]
DjangoでWEBアプリケーションを開発していてデータベースの集計などをバッチ処理したいときに、カスタムコマンドを作り実行する方法です。 今回はサンプルとしてmycommandアプリケーションを作成するので以下のコマン […]
DjangoのWEBアプリケーションでQuerySetの表示順を五十音順にしたら、開発環境では五十音順で表示されているのに本番環境では五十音順になっていないときの対処法です。(中途半端に五十音順になっていて、4、5件毎に […]
iPhoneとiPadから使えるPythonistaというアプリを使ってFlaskからHello World!する方法です。 Pythonistaはプリインストールされたモジュールが充実していて、バージョンも2.7か3. […]
Djangoでモジュールを作りviews.pyからimportして呼び出す方法です。 同じ処理を何度も書いたり、同じ処理を複数回呼び出したりするときは、その処理をモジュール化してviews.pyからimportして呼び出 […]
平素は格別のお引立てを賜り、厚く御礼申し上げます。 誠に勝手ながら、弊社では下記日程をゴールデンウィーク休業とさせて頂きます。 2019年4月27日(土)~2019年5月6日(月) 期間中お客 […]
DjangoのWEBプリケーションでCSVをpandasで読み込んでforで一行ずつループ処理をしたところ、毎回決まったところで決まったエラーが出たのでPyCharmのデバッグ機能を使って原因を調べた内容です。
プログラムはCSVから読み込んだ文字列が既にデータベースにあるか調べて、存在しなければ処理をして保存するといった内容です。メインの処理は以下のコードの”# 通常の処理”以降に始まりますが、内容とは関係が薄いので今回は割愛します。
最初のコード
import pandas as pd
from information.models import Information
def text_information(request):
datasets = pd.read_csv("/csv/title.csv", encoding="utf_8")
for title in datasets.TITLE:
title_count = Information.objects.filter(title=title).count()
if title_count < 1:
# 通常の処理
CSVのデータが欠損していたり、空白だったりすると読み込んだデータがNaNになってしまいます。上記のコードでは受け取ったtitleが存在するかどうかを判定するので、NaNというtitleがデータベースに存在するかどうかを調べます。この場合、存在しないのでtitle_count = 0となり通常の処理が走ります。通常の処理以降でtitleを文字列として処理すると文字列ではないためエラーが発生します。
読み込んだデータがNaNの時にはクエリをしない様に変更した最終的なコードになります。
import pandas as pd
from information.models import Information
def text_information(request):
datasets = pd.read_csv("/csv/title.csv", encoding="utf_8")
for title in datasets.TITLE:
if title != title:
# nanの時の処理
title_count = 1
else:
title_count = Information.objects.filter(title=title).count()
if title_count < 1:
# 通常の処理
# 実際にはここから文字列の処理をしています。
datasets = pd.read_csv(“/csv/title.csv”, encoding=”utf_8″)
CSVのデータをdatasetsに代入します。
for title in datasets.TITLE:
読み込んだCSVからカラム名がTITLEのデータを繰り返し処理します。
if title != title:
NaNは自分同士を比較するとFalseとなるので、ここでNaNかどうかを判定しています。もしNaNならtitle_count = 1にしています。
title_count = Information.objects.filter(title=title).count()
データベースに存在するかを調べます。
if title_count < 1:
もし存在しなければ、続きの処理をします。
当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。
Comments